如果在页面上打开某种类型的链接循环,如何从网站抓取数据?

时间:2018-04-22 10:02:28

标签: 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来做到这一点。有没有办法区分第一个网址和第二个网址,这些网址允许我提取表格。

1 个答案:

答案 0 :(得分:1)

您不需要在第一个xpath处提取链接。您可以按照我在第一行中显示的那样收集每个tab pane first类,然后通过使用简单的for循环进入该类以提取链接。

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