2024-04-29 14:46:30 发布
网友
我正在做一个网络应用程序,搜索每种型号鞋子的所有库存鞋码
例如,对于一个有鞋子列表的网站:
http://www.soccer.com/shop/footwear/?page=1&pageSize=12&query=*&facet=ads_f40502_ntk_cs%253A%2522Nike%2522
我需要深入每个链接来搜集这些信息。 有没有什么方法可以有效地用Scrapy(或其他东西)做到这一点?还是不可能
这是可能的,也是Scrapy的核心功能之一
Scrapy
例如,要在该站点上刮掉每一只鞋,您要做的是:
在spider变量中start_urls = ['http://www.soccer.com/shop/footwear/?page=1&pageSize=12&query=*&facet=ads_f40502_ntk_cs%253A%2522Nike%2522']
start_urls = ['http://www.soccer.com/shop/footwear/?page=1&pageSize=12&query=*&facet=ads_f40502_ntk_cs%253A%2522Nike%2522']
那么在parse(self, response)上,您的代码应该如下所示:
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循环中注册为回调,您应该提取所有需要的信息
parse_shoe
for
现在这里发生的事情是,爬行器开始在start_urls中对URL进行爬网,然后对于每个满足我们指定的xpath的URL,它将使用parse_shoe函数对其进行解析,在这里您可以简单地提取鞋码
start_urls
你也可以在这个link上跟随scrapy的主站点上的“followLinks”教程-这是非常清楚的
为了完整性,我在那个页面上为您查找了正确的xpath,它应该是'*//ul[@class="medium-3 columns product-list product-grid"]//a/@href'
'*//ul[@class="medium-3 columns product-list product-grid"]//a/@href'
这是可能的,也是
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)
上,您的代码应该如下所示:在方法
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'
相关问题 更多 >
编程相关推荐