栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python:针对HTML内容的数据清洗

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:针对HTML内容的数据清洗

场景描述

在使用Python爬虫的时候经常需要对爬取的数据进行清洗,以此来过滤掉不需要的内容。对于爬取的结果为文本的数据经常采用正则(re.sub())来进行数据清洗,但是对于爬取的结果为HTML的数据如果还是采用正则来进行数据清洗的话往往会事倍功半,那么针对爬取的结果为HTML的数据又该如何进行数据清洗呢?

代码示例
# -*- coding: utf-8 -*-
import scrapy
from lxml import etree
from lxml import html
from html import unescape


class TestSpider(scrapy.Spider):
    name = 'test'
    allowed_domains = ['www.gongkaoleida.com']
    start_urls = ['https://www.gongkaoleida.com/article/869186']
    # start_urls = ['https://www.gongkaoleida.com/article/869244']

    def parse(self, response):
        content = response.xpath('//article[@]').getall()[0].replace('n', '').replace('r', '')
        # print(content)
        tree = etree.HTML(content)
        # 查找包含“公考雷达”的标签
        str1 = tree.xpath('//p[contains(text(), "公考雷达")] | //a[contains(text(), "公考雷达")]/..')
        # 查找包含“附件:”或“附件:”或“常见office文件后缀”的标签
        str2 = tree.xpath('//a[contains(text(), "附件:") or contains(text(), "附件:") or contains(text(), ".doc") or contains(text(), ".xls") or contains(text(), ".ppt")]/..')
        str3 = tree.xpath('//p[contains(text(), "附件:") or contains(text(), "附件:") or contains(text(), ".doc") or contains(text(), ".xls") or contains(text(), ".ppt")]')
        # 数据清洗
        for i in str1 + str2 + str3:
            p1 = html.tostring(i)
            p2 = unescape(p1.decode('utf-8'))
            content = content.replace(p2, '')
        print(content)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/618879.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号