Python爬虫常用的几种数据提取方式

python爬虫的几种数据提取方式:正则 ,bs4,pyquery,xpath,cssselector。

一,正则

提取数据步骤:创建正则对象-->匹配查找-->提取数据保存



111111
222222
333333
444444

例:提取所有a标签的文本

pattern = re.compile(r'(.*?)', re.S)

a_text = re.findall(pattern, html)

知识点:

findall 返回的结果是列表套元组的形式

而search一般要加group(), groups(),

re.S 可以将正则的搜索域不再是一行,而是整个HTML字符串

.*? 非贪婪匹配    .*贪婪匹配

二, Beautifulsoup

obj = BeautifulSoup(html, "lxml")

BeautifulSoup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象

知识点:

获得标签的某个属性:  .get()
获得标签内部的文字:  .string . strings .stripped_strings .get_text()
.string:  如果一个标签里面没有标签了,那么 .string 就会返回标签里面的内容。如果标签里面只有唯一的一个标签了,那么 .string 也会返回最里面的内容 
.strings: 获取多个内容,返回结果是生成器,需要遍历获取
 .stripped_strings输出的字符串中可能包含了很多空格或空行,使用 .stripped_strings可以去除多余空白内容
 通过css筛选元素: .select()
 .select():返回的是list
遍历文档树:

获取tag的子节点: .contents 返回的是list   .children返回的是listiterator object

PyQuery


你可能感兴趣的:(Python爬虫常用的几种数据提取方式)