了解了XPATH后觉得它比正则表达式方便多了。
1、XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历,我们用来提取格式为HTML的网页源码效率也相当高,可以遍历html的各个标签和属性,来定位到我们需要的信息的位置,并提取。
2、首先需要安装lxml库
pip install lxml
3、lxml有两大部分,分别支持XML和HTML的解析:
lxml.etree 解析XML
lxml.html 解析HTML
lxml.etree可以用来解析RSS feed,它就是一个XML格式的文档,然而爬虫抓取的绝大部分都是html网页,所以接下来我只表达自己对于lxml.html的理解。
4、案例说明
import requests
#导入requests库
from lxml import html
#从lxml中导入html方法
url = 'http://www.lagou.com/zhaopin/'
#将要爬取的域名
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}
#用户代理,模仿一个浏览器
r = requests.get(url, headers=headers).content
#调用requests库的get方法,获取源代码
response = html.fromstring(r)
#调用html.fromString函数解析html源代码 ,
fromstring(string) 返回值依据输入字符串而定,如果输入看起来像是一个文档,则返回document_fromstring(string),如果是一个单一片段,则返回fragment_fromstring(string)。
title = response.xpath('//div[@class="list_item_top"]/div/div/a/span/em/text()')
#提取em标签,text()获取该标签下的文本
print(title)
#输出爬取到的数据