在主页面内刮取页面?

时间:2017-02-26 06:41:58

标签: python scrapy

我正在做一个网络应用程序,搜索每种型号鞋子的所有鞋子尺码。

例如,对于一个有鞋子列表的网站:

http://www.soccer.com/shop/footwear/?page=1&pageSize=12&query=*&facet=ads_f40502_ntk_cs%253A%2522Nike%2522

我需要进入每个链接以获取此信息。 有什么方法可以用Scrapy(或其他东西)有效地做到这一点吗?或者不可能这样做?

1 个答案:

答案 0 :(得分:2)

这是可能的,它是Scrapy的核心功能之一。

例如,为了抓住这个网站上的每一双鞋你会做的是:

在您的蜘蛛变量start_urls = ['http://www.soccer.com/shop/footwear/?page=1&pageSize=12&query=*&facet=ads_f40502_ntk_cs%253A%2522Nike%2522']

然后在您的parse(self, response)上,您的代码应如下所示:

for shoe_url in response.xpath(<ENTER_THE_XPATH>).extract()
    yield scrapy.Request(response.urljoin(shoe_url), callback=self.parse_shoe)

在我们在parse_shoe循环中注册为回调的方法for中,您应该提取所需的所有信息。

现在发生的事情是,蜘蛛开始抓取start_urls中的URL,然后对于符合我们指定的xpath的每个url,它将使用parse_shoe函数解析它,你可以在那里简单地提取鞋码。

您也可以在此link上关注scrapy主网站上的“关注链接”教程 - 非常清楚。

为了完整性我在该页面上为您寻找合适的xpath,它应该是'*//ul[@class="medium-3 columns product-list product-grid"]//a/@href'

相关问题