参考链接:
Python爬虫XPath语法及案例使用
在写Python爬虫时,经常需要对网页提取信息,如果用传统正则表达去写会增加很多工作量,此时需要一种对数据解析的方法,也就是即将要介绍的XPath表达式。
XPath的含义
XPath,全称XML Path Language,即 XML路径语言,它是一门在XML文档中查找信息的语言。最初是用来搜寻XML文档的,但同样适用于HTML文档的搜索。所以在做爬虫时完全可以使用XPath做相应的信息抽取。
XPath的选择功能十分强大,它提供了非常简洁明了的路径选择表达式。另外,它还提供超过100个内置函数,用于字符串、数值、时间的匹配以及节点、序列的处理等,几乎所有想要定位的节点都可以用XPath来选取。
XPath语法介绍
路径常用规则
应用实例
使用XPath对信息进行提取。
def dynamics(self, html):
selector = etree.HTML(html)
dynamics = selector.xpath('//div[contains(@class, "news")]//div[contains(@class, "alert")]')
for item in dynamics:
dynamic = ' '.join(item.xpath('.//div[@class="title"]//text()')).strip()
print(dynamic)
def profile(self, html):
selector = etree.HTML(html)
name = selector.xpath('//input[@id="user_profile_name"]/@value')[0]
email = selector.xpath('//select[@id="user_profile_email"]/option[@value!=""]/text()')
print(name, email)