爬虫数据清洗之html标签的清洗

    我们平常爬取数据时,会经常有多余的html便签,下面我们就来清洗一下这些标签:

1,只清洗标签,可以用正则,也可以用remove(),remove_tags()函数

正则清洗:
import re
html='<p class="txt" node-type="feed_list_content" nick-name="人民日报">\n                    【<a href="http://s.weibo.com/weibo?q=" target="_blank">#13个求职新方向#</a>!有你心动的职业吗<img src="//img.t.sinajs.cn/t4/appstyle/expression/ext/normal/aa/2018new_bingbujiandan_org.png" title="[并不简单]" alt="[并不简单]" class="face">】近日,人社部、市场监管总局、统计局联合发布13个新职业,既有现在流行的人工智能、<em class="s-color-red">大</em><em class="s-color-red">数据</em>、云计算、物联网等工程技术人员,也有电子竞技员、无人机驾驶员等新颖工种…你心动了吗?哪些学校开设了相关专业值得关注?戳图了解↓↓转给正在求学的TA!                </p>
pre = re.compile('>(.*?)<')
text= ''.join(pre.findall(html))

remove()用于删除多余的,我们不想要的特定的标签

doc = pq(html)

doc('.article-t style').remove()

如上是:想要class为article里面的内容,但又不想要style标签中的内容,就可以通过以上把style标签删除,然后再提取article下的所有内容。

remove_tags()删除含有完整的标签:

from w3lib.html import remove_tags

a = '<em><em>ai</em></em>工程师'

print(remove_tags(a))

ai工程师

2,清洗标签和标签包括的内容,用remove_tags_with_content(要清洗的文本,which_ones=(要清洗的标签,))函数 

from w3lib.html import remove_tags_with_content

a = "<span class=\"dp\">OTEzMjEzMTEzNDY=</span>9<span class=\"dp\">OTEzMjEzMTEzNDY=</span>132131134642891XT"
print(remove_tags_with_content(a, which_ones=('span',)))

9132131134642891XT

 

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在进行爬虫数据清洗时,你可以使用Python中的各种库和技术处理和清洗数据。下面是一些常见的方法和库: 1. 正则表达式:使用re模块来匹配和替换文本中的特定模式。正则表达式可以用于从HTML标签中提取文本、去除多余的空格、清除特殊字符等。 2. BeautifulSoup库:BeautifulSoup是一个优秀的HTML/XML解析库,它可以帮助你方便地从网页中提取结构化数据,去除HTML标签或其他不需要的内容。 3. 字符串处理:使用Python内置的字符串处理方法,例如split、strip、replace等,可以对文本进行切分、去除空格、替换等操作。 4. 数据库操作:如果你需要将爬取到的数据存储到数据库中,可以使用Python中的数据库操作库(如MySQLdb、psycopg2等)来连接数据库、创建表格、插入数据等操作。 5. Pandas库:Pandas是一个强大的数据处理和分析库,它提供了各种功能来操作和清洗结构化数据。你可以使用Pandas来加载爬取到的数据,并进行数据过滤、重命名列、填充缺失值等操作。 6. 数据类型转换:根据需要,你可能需要将字符串转换为数字、日期等其他数据类型。Python提供了相应的函数和方法来实现这些转换。 7. 数据去重:在爬虫过程中,可能会遇到重复的数据。你可以使用Python中的集合(如set)来去除重复项,或者使用Pandas库中的drop_duplicates()方法来去除DataFrame中的重复行。 这些是一些常见的爬虫数据清洗方法和库,具体要根据你的需求和数据特点来选择合适的方法。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值