python爬虫初步之Xpath实战
2019-03-04 21:11
232 查看
**
python爬虫初步之Xpath实战
**
使用Xpath提取丁香园论坛的回复内容
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。
关于Xpath的学习可参考网址:http://www.w3school.com.cn/xpath/xpath_syntax.asp
一、用户浏览器访问目标网站并检查目标内容所在标签
目标网址是:
我用Chrome访问的,按F12可看见网站结构及回复内容所在标签如下图:
二、获取回复内容
目标内容在td class="postbody"标签下,利用Xpath获取内容,我们使用Chrome的Xpath Helper插件,可以很方便的写出匹配的Xpath,如下图所示:
可看到匹配的内容已经在右边显示出来了,同样,获取用户名也用这个方法。主要是要掌握Xpath的用法,在开发者模式下右击也可以复制标签的Xpath,不过不建议这样做,因为有的会出错,而且没有技术含量。
三、源码
import urllib.request from lxml import etree def main(): data = [] s1 = '//div[@class="auth"]/a/text()' s2 = '//div/table/tbody/tr/td[@class="postbody"]/text()' url = 'http://www.dxy.cn/bbs/thread/626626' headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0" } request = urllib.request.Request(url, headers=headers) html = urllib.request.urlopen(request).read().decode("utf-8") # 解析HTML文件为HTML DOM模型 content = etree.HTML(html) userNames = content.xpath(s1) cons = content.xpath(s2) for user, con in userNames, cons: data.append((userNames, con)) print(data) if __name__ == '__main__': main()
相关文章推荐
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(上)
- python3 [入门基础实战] 爬虫入门之xpath的学习
- python爬虫实战-爬取笑话大全并保存至本地(xpath)
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(下)
- python3 [爬虫入门实战]爬虫之selenium 安装设置与初步使用
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(上)
- [Python实战项目] - xpath 爬虫实战,获取纵横小说网连载小说最新章节(一)
- python爬虫实战-爬取美女图片并保存至本地文件夹(xpath)
- python3 [入门基础实战] 爬虫入门之xpath爬取脚本之家python栏目
- python爬虫实战-爬取城市每条公交详细信息并保存至本地(方法、xpath)
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(下)
- python 爬虫系列04 实战 中国天气网
- Python实战(一)——Python编写网络爬虫
- Python 爬虫实战 - 糗事百科段子
- Python爬虫实战:极客学院
- Python爬虫:现学现用Xpath爬取豆瓣音乐
- Python爬虫实战(1):爬取糗事百科段子
- python爬虫实战之爬取京东商城实例教程
- Python爬虫实战五之模拟登录淘宝并获取所有订单
- Python3.X 爬虫实战(并发爬取)