前言

某天打算使用scrapy shell爬取prts上信息的时候复制了元素的xpath却在scrapy shell中无法查询到相应的结果,得到的结果是一个空列表,如图:
关于在python中scrapy模块的scrapy shell中通过xpath无法查询到相应的元素的问题
但是在某些网站的某些元素却是可以成功查询到有效的结果,比如说百度网站的“百度一下”按钮
关于在python中scrapy模块的scrapy shell中通过xpath无法查询到相应的元素的问题

正文

在网上搜索结果后主要有两种观点,第一种是Chrome的复制xpath会自动添加<tbody>标签,即使源码上不存在这个标签,这样自然无法查询到正确有效的结果,但是我爬取的prts的元素恰好有<tbody>标签,所以不是这个原因。
第二种是某些网页的源码会使用Javascript,这时使用python引擎的scrapy shell就无法识别了(大概?
附上在StackOverflow上大佬的回答:

You browser renders Javascript code and this leads to change in HTML code. So, in this case, you need to use a Javascript engine for requests in Scrapy. Please look at scrapy-splash to render JS and get same results as in browser.

Google翻译结果:
您的浏览器呈现Javascript代码,这会导致HTML代码的更改。 因此,在这种情况下,您需要对Scrapy中的请求使用Javascript引擎。 请查看scrapy-splash以呈现JS并获得与浏览器相同的结果。

我想我的问题大概是这个原因,这时候使用JavaScript来作为引擎来处理请求大概可以解决问题了?
以上为个人的总结笔记,如果有错误还请大佬指教ww

参考资料网站:
https://blog.csdn.net/dta0502/article/details/82118524
https://stackoverflow.com/questions/56968124/xpath-on-browser-and-response-are-different

相关文章:

  • 2022-02-15
  • 2021-09-11
  • 2021-11-08
  • 2022-12-23
  • 2021-09-26
  • 2021-11-15
  • 2021-04-04
  • 2022-12-23
猜你喜欢
  • 2021-09-30
  • 2022-12-23
  • 2021-06-24
  • 2021-12-13
  • 2021-06-06
  • 2022-12-23
  • 2022-02-09
相关资源
相似解决方案