爬虫第四篇:html解析之xpath

在上面的三篇中我们html的解析都是用了正则表达式进行匹配。下面我们主要说一下一个使用起来很简单的模块xpath进行匹配解析html文本。

Chrome上有一款插件:XPath Helper,直接在浏览器就可以验证xpath表达式的书写是否正确。

 

lxml 使用流程

1. from lxml import etree
2. parseHtml = etree.HTML(html)
3. rList = parseHtml.xpath('表达式')

xpath匹配规则

1. 获取节点对象
     //div[@class="test"]
2. 获取节点属性值
     //div[@class="test"]//a/@src
3. 函数
     //div[contains(@class,"test")]/a/@href
4.获取节点对象内容
    //div/a/text()

抓取Demo实例

import requests
from lxml import etree

url = 'https://maoyan.com/board/4?offset=10'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
}

# 获取页面
res = requests.get(url, headers=headers)
html = res.text

parseHtml = etree.HTML(html)
rList = parseHtml.xpath('//dl[@class="board-wrapper"]/dd')
for r in rList:
    name= r.xpath('./a/@title')
    print(name)

 

posted @ 2017-11-15 18:18  风起了,风停了  阅读(546)  评论(0编辑  收藏  举报