2017-02-26 110 views
0

我正在做一個網絡應用程序,搜索每種鞋型的庫存鞋碼。在主頁面內刮頁面?

因此,舉例來說,對於具有鞋子列表的網站:

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

我需要去每一個環節裏面湊這個信息。 有什麼辦法可以有效地做到這一點與Scrapy(或其他)?還是不可能做到這一點?

回答

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) 

以及我們在for循環中註冊爲回調的方法parse_shoe,您應該提取所有需要的信息。

現在發生的情況是,蜘蛛開始抓取start_urls中的網址,然後爲每個符合我們指定的xpath的網址使用parse_shoe函數解析它,您可以在其中簡單地提取鞋子尺寸。

你也可以在scrapy的主網站上關注這個link的「Follow Links」教程 - 這很清楚。

爲了完整性我尋找合適的XPath爲您在該網頁上,它應該是'*//ul[@class="medium-3 columns product-list product-grid"]//a/@href'

+0

我看到,整個項目取決於這是否是可能的。我很高興它。謝謝! – tadm123

+0

感謝您的批准! – bluesummers

+0

嘿btw我看到,它顯然是非法的網絡爬行?我會因爲這樣做而違法嗎? – tadm123