聚焦爬虫
爬取页面中指定的内容
编码流程:
指定url——发起请求——获取响应数据——数据解析——进行持久化存储
数据解析分类
- 正则匹配
- bs4
- xpath
数据解析原理
xpath解析:
- 最常用且最便捷高效的一种解析方式
- 实例化一个etree对象,并且将页面源码数据加载到该对象中
- 通过调用etree对象中相关属性方法结合xpath表达式进行标签定位和数据捕获
首先
pip install lxml
from lxml import etree
- xpath(‘xpath表达式’)
- tree = etree.parse(‘html’)
- tree.xpath(’/html/head/title’)
- /为从根节点开始定位,一个层级,//为多个层级,可以表示从任意位置开始定位
- r = tree.xpath(’//div[@class=“sh”]/p[3]’) 属性定位 tag[@attrName=“attrValue”]
- 获取文本,/text() //text()
- 取属性值——/@属性名称 < img src = “baidu.com”> —— /img/@scr
from lxml import etree
import requests
if __name__ == "__main__":
url = 'https://sh.58.com/ershoufang/'
ua = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"
headers = {
"User-Agent":ua,
}
response1 = requests.get(url=url,headers=headers).text
tree = etree.HTML(response1)
li_list = tree.xpath('/html/body/div[5]/div[5]/div[1]/ul/li')
for li in li_list:
print(li.xpath('./div[2]/h2/a/text()'))