问答

Scrapy Shell

作者:admin 2021-06-15 我要评论

response 404... 是出错了吗? 之后用 xpath 一直没有返回东西。xpath我用插件检查也是对的。 ### 首先404问题 你这个url https://segmentfault.com/serarch?q=p...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

截屏2020-07-27 下午1.50.08.png

response <404...> 是出错了吗?

之后用 xpath 一直没有返回东西。xpath我用插件检查也是对的。

截屏2020-07-27 下午1.53.22.png

###

首先404问题

你这个url https://segmentfault.com/serarch?q=python&page=1 确实是404的, 如下图我刚测试的
我写错了,重新看看, 这是我用requests写的,你肯定scrapy哪里发送请求有问题, 还有就是你xpath语法有点问题(我好久没写xpath了,提示xpath语法报错)

import requests
from parsel import Selector  # pip install parsel Scrapy官方把Selector抽出来的解析库

url = "https://segmentfault.com/search?q=python&page=1"

headers = {
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"
}

res = requests.get(url, headers=headers)


selector = Selector(text=res.text)

res = selector.xpath('//section//a/@href').extract()

print(res)
# ['/q/1010000003713912', '/a/1190000016012554', '/a/1190000015295218', '/a/1190000022539406', '/a/1190000021217438', '/a/1190000019860830', '/q/1010000004943967', '/a/1190000012121101', '/a/1190000020409601', '/q/1010000008445872', '/a/1190000022460603', '/q/1010000004254202', '/ls/1650000017333471/l/1500000016161912', '/q/1010000012425420', '/a/1190000019993378', '/a/1190000021752983', '/a/1190000022744145', '/a/1190000016108471', '/q/1010000005606698', '/q/1010000008108222']

xpath为空

这个是因为你response返回值为空?你可以输出验证下print(response.text)从而导致提取不到值

###

找个没有反爬的网站。

segmentfault 有反爬。

你输出 response.text 会发现其实是有拿到 segmentfault 的 response 内容的。

只不过内容是 404 的页面文本。

总结来说就是这不是 xpath 的问题,是你拿到的 response 内容就和你用浏览器访问的内容不同。所以你用(根据浏览器显示的) xpath 去获取内容自然会出错。所以你需要解决的是反爬问题。


另外,我之前也在找 xpath helper 插件,不过在 chrome 商店都没有找到,哪里找的可以分享一下吗?

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • Scrapy Shell

    Scrapy Shell

  • lodash是怎么打包的

    lodash是怎么打包的

  • C++竞赛算法图论的Flody核心思想是什么

    C++竞赛算法图论的Flody核心思想是什么

  • 这道关于树形网络的算法的思路是什么呢

    这道关于树形网络的算法的思路是什么呢

腾讯云代理商
海外云服务器