python - 如果页面下方存在某种链接循环,如何从网站中抓取数据?

标签 python scrapy scrapy-shell

这是link 。当您单击第一个链接(“附件和流体”)时,会在同一页面上打开一个包含其他链接的新表格,单击其他链接,您将与表格进行交互。问题是第一个链接与第二个链接具有相同的 xpath,尽管它们都有不同的 url,但是我如何区分这两个链接以便我可以提取表格。

每当您从上一页移动到此页面时,此 xpath 只会生成第一个链接部分:

sp_half=response.xpath('//li[@class="tab pane first"]/a/@href').extract_first()

虽然这个生成了该页面的所有链接,也包含其他链接。

urls=response.xpath('//li/a/@href').extract() 

第二个 xpath 正在生成带有许多额外链接的所需 url。我正在使用 scrapy 来做到这一点。有什么方法可以区分第一个网址和第二个网址,以便我提取表格。

最佳答案

您不需要提取第一个 xpath 处的链接。您可以先收集每个选项卡 Pane 类,如我在第一行中所示,然后进入该类以使用简单的 for 循环提取链接。

links = response.xpath('//*[@class="tab pane first"]')
for link in links
   a_link = link.xpath('./a/@href').extract()
   yield {'Category Link': a_link}

关于python - 如果页面下方存在某种链接循环,如何从网站中抓取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49964710/

相关文章:

scrapy - 如何在 scrapy Shell 中使用 scrapy 中间件?

python - 需要一种使用 pywinauto 在具有控件 ID 的窗口中访问控件的方法

python - 使用 XlsxWriter 将文本框或文本框中的文本定向为垂直?

python - Scrapy - 在未返回项目字段之一时处理异常

python - 如何从 scrapy 中的 json 文件中读取行

xpath - 网络抓取-从bandcamp.com获取项目标题

python - Python/Django 中的音频波形可视化

python - 如何在 tensorflow 中获取现有 tensorflow 二进制文件的构建信息?

python - 部分 HTML 对 Scrapy 不可见

web-scraping - 尽管设置了 USER_AGENT,但 Scrapy Shell : twisted. internet.error.ConnectionLost