在主页内刮页?

2024-04-29 14:46:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

我需要深入每个链接来搜集这些信息。 有没有什么方法可以有效地用Scrapy(或其他东西)做到这一点?还是不可能


Tags: 程序comhttp列表网站wwwpage网络应用
1条回答
网友
1楼 · 发布于 2024-04-29 14:46:30

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

例如,要在该站点上刮掉每一只鞋,您要做的是:

在spider变量中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的主站点上的“followLinks”教程-这是非常清楚的

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

相关问题 更多 >