在使用python的爬虫脚本将一个网页的数据抓取回来的时候,数据都是非常复杂冗余的。想要获取指定的数据那就必须对数据进行清洗处理操作,本文就会介绍三个数据处理库的使用方法和他们之间的差异。
一、BeautifulSoup库
这个库是专门用于对HTML格式的返回数据进行解析处理的处理,提供了对HTML的树状格式进行解析的方法和获取指定标签内的数据的方法,使用方法如下所示:
# 导入BeautifulSoup库的bs4方法 from bs4 import BeautifulSoup # 实例化一个处理html格式数据的soup对象 soup = BeautifulSoup(html,"html.parser") # 获取段落标签p中的文本内容 info = soup.find(attrs={'p'}).text # 获取标题并输出 data = soup.find(attrs={'id':title}).textprint(data)
二、lxml库
lxml库的作用是对xml格式的数据进行解析,除此之外他还可以对具有节点结构的任意数据进行处理,也可以对html格式数据处理,示例如下:
from lxml import etree # 实例化解析对象 selector = etree.HTML(url) # 使用xpath获取数据 print(country.text)survey_select = selector.xpath('//*[@id="wzneirong"]/p')
三、正则表达式
正则表达式可以用于任意格式数据的数据处理,它提供了几乎包含了所有数据进行匹配的方法。方法之间还可以自行组合使用,扩展性非常好,使用方法如下:
import re # 使用filadll方法匹配数据,join方法拼接数据 data = re.findall('(.*?)', page_content) info = ''.join(data)print(country[0],info)
总的来说,正则表达式和lxml库的效率快但是使用比较复杂,BeautifulSoup库的使用方法简单,但是运行的速度不快。
以上就是python数据处理三个库的使用方法介绍和效率难度对比了。