【问题标题】:Scrapy Can't Select By IDScrapy 无法按 ID 选择
【发布时间】:2019-04-12 14:39:54
【问题描述】:

我正在尝试抓取学校项目的数据,但由于某种原因,我无法弄清楚如何从该页面上的表格中获取数据。我正在scrapy shell中测试,只是没有得到任何数据。这就是我正在尝试的方法

scrapy shell https://www.psacard.com/pop/baseball-cards/1911/turkey-red-cabinets-t3-t9/51453

table = response.xpath('//*[@id="DataTables_Table_0"]/table/tbody')

这是返回[]

我已经尝试过整个表格类以及这样的

table = response.xpath('//*[@class="clear interior-result-table pop-grid items psa table-striped dataTable no-footer dtr-inline"]')

并得到相同的[] 响应

我很难过。有什么想法吗?

【问题讨论】:

  • 转到页面源码,如果在xpath中找不到你用过的dom,那就是js页面。对于 js 页面,您需要像 splash 这样的 js 渲染引擎。为此只需请求@Vezunchik

标签: python scrapy


【解决方案1】:

您需要的所有数据都在另一个请求中。例如,您可以在 Chrome 的开发人员工具中找到它。检查https://www.psacard.com/Pop/GetItemTable?headingID=51453&categoryID=20003&isPSADNA=false&pf=0&_=1555080293549。即使是对该链接的常见 GET 请求也会为您提供表格行。

【讨论】:

  • 我也打算回答这个问题!
  • 谢谢!当您说“常见的获取请求”时,您究竟是什么意思——即您如何以这种方式提取数据?
  • 我的意思是您不需要任何特殊的标头或cookie等。
  • 我能快速问一件事吗?您如何在开发工具中找到该请求?我正在检查控制台、网络等,但找不到任何东西
  • Chrome,开发工具,网络标签。打开刷新页面,截图如下:imgur.com/a/2a2KbPl
猜你喜欢
  • 2017-05-28
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-17
相关资源
最近更新 更多