Xpath常用的路径表达式:

  • XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
  • 在XPath中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
  • XML文档是被作为节点树来对待的。

XPath使用路径表达式在XML文档中选取节点。节点是通过沿着路径选取的。下面列出了最常用的路径表达式:

  • nodename 选取此节点的所有子节点。
  • / 从根节点选取。
  • // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
  • . 选取当前节点。
  • … 选取当前节点的父节点。
  • @ 选取属性。
  • /text() 提取标签下面的文本内容
    • 如:
    • /标签名 逐层提取
    • /标签名 提取所有名为<>的标签
    • //标签名[@属性=“属性值”] 提取包含属性为属性值的标签
    • @属性名 代表取某个属性名的属性值

使用lxml解析

  • 导入库:from lxml import etree

  • lxml将html文本转成xml对象

    • tree = etree.HTML(html)
  • 用户名称:tree.xpath(’//div[@class=“auth”]/a/text()’)

  • 回复内容:tree.xpath(’//td[@class=“postbody”]’) 因为回复内容中有换行等标签,所以需要用string()来获取数据。

    • string()的详细见链接:https://www.cnblogs.com/CYHISTW/p/12312570.html
  • Xpath中text(),string(),data()的区别如下:

    • text()仅仅返回所指元素的文本内容。
    • string()函数会得到所指元素的所有节点文本内容,这些文本讲会被拼接成一个字符串。
    • data()大多数时候,data()函数和string()函数通用,而且不建议经常使用data()函数,有数据表明,该函数会影响XPath的性能。

实战:爬取丁香园-用户名和回复内容

  • 爬取思路:

    1. 获取url的html
    2. lxml解析html
    3. 利用Xpath表达式获取user和content
    4. 保存爬取的内容
#导入相关的库
import requests
from lxml import etree
url = 'http://www.dxy.cn/bbs/thread/626626#626626'
1.获取url的html
res = requests.get(url)
html = res.text

2.lxml解析html
tree = etree.HTML(html)#这里的html是内容
tree

3.利用xpath表达式获取user和content
#获取用户
user = tree.xpath('//div[@class="auth"]/a/text()')
user

#获取回复的内容
content = tree.xpath('//td[@class="postbody"]')
content


4.保存爬取的内容
results = []
for i in range(0, len(user)):results.append(user[i].strip()+': '+content[i].xpath('string(.)').strip())
for i in results:print(i)


进一步优化

for i, result in zip(range(0, len(user)), results):print('user'+str(i+1)+'-'+result)print('*'*100)

爬虫(2)之 Xpath(爬取丁香园)相关推荐

  1. python爬虫-----学习bs,爬取丁香园特定帖子的所有回复内容

    beautifsoup----爬虫数据挖掘又一大利器 – 安装: conda install beautifulsoup4 或者 pip install beautifulsoup4(这个4代表着bs ...

  2. 爬虫 -----beautifulsoup、Xpath、re (二)附爬取丁香园用户名以及回复内容

    目录 1.Xpath简介 1.1使用流程: 1.2Xpath常用的路径表达式 1.3 使用lxml解析 2 实战:爬取丁香园-用户名和回复内容 2.1 获取url的html 2.2 lxml解析htm ...

  3. Python爬虫笔记(3)- 爬取丁香园留言

    Python爬虫笔记(3)- 爬取丁香园留言 爬取丁香园留言:主要用到了模拟登录 爬取丁香园留言:主要用到了模拟登录 import requests, json, re, random,time fr ...

  4. [转载] python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器)

    参考链接: Python vars() python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造 ...

  5. python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器)

    python+selenium定时爬取丁香园的新冠病毒每天的数据,并制作出类似的地图(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造成损失,和本博客无关 目录 python ...

  6. 利用paddlepaddle爬取丁香园实时统计数据,并生成疫情地图!!

    当下,新型冠状病毒感染的肺炎疫情无时无刻不牵动着人们的心.面对来势汹汹的疫情,除了奋战在前线的医护人员以及防疫建设工作者们,小媛们也想尽一份绵薄之力. 这不,今天为大家带来了一份超超超简单的!生成自己 ...

  7. Python爬虫如何实用xpath爬取豆瓣音乐

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  8. Python爬虫之利用xpath爬取ip代理网站的代理ip

    爬虫工具 python3 pycharm edge/chrome requests库的用法 requests库是python中简单易用的HTTP库 用命令行安装第三方库 pip install req ...

  9. 爬虫爬评书吧_爬虫学习:xpath爬取评书网

    在家闲着,想找点评书听,但找了很久都没找到方便打包下载的地方.于是就拿起自学的python爬虫,自己动手丰衣足食. 运行环境:Windows7,python3.7 操作步骤: 1.打开选好的评书主页面 ...

最新文章

  1. pandas笔记(pandas Data Structures)
  2. linux 网络管理   防火墙 iptables
  3. JDK动态代理实现简单AOP--转
  4. hive防止数据误删
  5. Go 语言web 框架 Gin 练习3
  6. OpenCV捕获格雷码模式
  7. Metal之简单渲染动态切换屏幕颜色
  8. Candidate sampling:NCE loss和negative sample
  9. 云起智慧中心连接华为_【转发】华为智慧屏HiLink控制联动,操作指南来了!
  10. 代码提交本地代码和远程代码不同步问题(笔记)
  11. 原生态mysql_MySQL 原生操作-速查
  12. 所有浏览器主页惨遭篡改:http://wangzhi6.dhtz444.top/或https://www.2345.com/
  13. Tensorflow 释放内存
  14. J2me之一——移动开发技术基础
  15. 【数学建模 | 快速入门(上)】笔记----(P1-P8)
  16. 傻白探索Chiplet,一些相关术语和问题记录(二)
  17. 神州退市,一嗨要上市
  18. 叮咚谁呀我是送信的邮递员呀_幼师必备|幼儿园冬季室内游戏
  19. c语言生成随机数(组)
  20. 神经网络训练之交叉验证

热门文章

  1. SQL手工注入原理(含环境搭建) ─=≡Σ(((つ•̀ω•́)つ 知己知彼百战百胜 web安全
  2. 网页设计作业成品下载Dreamweaver网页FrontPage网页html静态
  3. zookeeper 使用场景
  4. 金万维动态域名小助手使用教程
  5. console h3c 波特率_H3C(华三)路由器交换机SecureCRT软件设置|连接Console口方法
  6. 锤子手机能用鸿蒙系统吗,华为:明年初开放手机鸿蒙系统,两年前就可以用,因为安卓才没用...
  7. java中accept什么意思_java – Visitor模式中`accept`方法的需要是什么
  8. 人大金仓解决授权文件license过期问题
  9. 云海麒麟服务器管理中心起火,云海麒麟与中标麒麟联合构建安全可控服务器
  10. 将BT进行到底-BT客户端工具全收集