python爬虫的几种数据提取方式:正则 ,bs4,pyquery,xpath,cssselector。
一,正则
提取数据步骤:创建正则对象-->匹配查找-->提取数据保存
<html>
<div><a href='www.baidu.com'>正则</a></div>
<div>111111</div>
<div><a href='www.baidu1.com'>正则1</a></div>
<div>222222</div>
<div><a href='www.baidu2.com'>正则2</a></div>
<div>333333</div>
<div><a href='www.baidu3.com'>正则3</a></div>
<div>444444</div>
</html>
例:提取所有a标签的文本
pattern = re.compile(r'<a.*?>(.*?)</a>', re.S)
a_text = re.findall(pattern, html)
知识点:
findall 返回的结果是列表套元组的形式
而search一般要加group(), groups(),
re.S 可以将正则的搜索域不再是一行,而是整个HTML字符串
.*? 非贪婪匹配&