2016/7/13 23:39:43 xPath 分析网页元素
1. 采用QQ浏览器 , 当前以获取qiushibaike里面的内容以及好笑,评论数为例![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122624497-187556000.png)
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122625247-1870682664.jpg)
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122626169-745481448.png)
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122626779-1109585302.jpg)
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122627841-1839342026.png)
选择需要抓取的内容,然后右键检查
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122624497-187556000.png)
会出现一个调试界面,在 elements 里面选择需要抓取的信息,右键 copy - copy XPath
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122625247-1870682664.jpg)
3. 接下来 可以到 console 界面调试一下抓取的信息(妹的,这么强悍)
使用 $x('XPath') 可以抓到相关信息
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122626169-745481448.png)
4. 相应的我们可以得到相关Xpath
1.内容 //*[@id="qiushi_tag_116975883"]/div[2]
2.好笑 //*[@id="qiushi_tag_116975883"]/div[3]/span[1]/i
3.评论数 //*[@id="c-116975883"]/i
5.以上只是分析了一个,那如何获取所有呢?如下图,先分析所有的内容。
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122626779-1109585302.jpg)
5.1 然后获取,
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122627841-1839342026.png)
结合其他人的项目代码分析
from scrapy import Spider
from scrapy.selector import Selector
from stack.items import StackItem
class StackSpider(Spider):
name = "stack"
allowed_domains = ["stackoverflow.com"]
start_urls = [
"http://stackoverflow.com/questions?pagesize=50&sort=newest",
]
def parse(self, response):
questions = Selector(response).xpath('//div[@class="summary"]/h3')
for question in questions:
item = StackItem()
item['title'] = question.xpath(
'a[@class="question-hyperlink"]/text()').extract()[0]
item['url'] = question.xpath(
'a[@class="question-hyperlink"]/@href').extract()[0]
yield item
我们将遍历问题,从抓取的数据中分配标题和URL的值。一定要利用Chrome开发者工具的JavaScript控制台测试XPath的选择器,例如$x('//div[@class="summary"]/h3/a[@class="question-hyperlink"]/text()') 和 $x('//div[@class="summary"]/h3/a[@class="question-hyperlink"]/@href')。
![](https://images2015.cnblogs.com/blog/986998/201607/986998-20160720122628669-1179416250.png)
分类:
python
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现