2011-12-05 136 views
1

我正在使用CrawlSpider從網頁抓取並提取數據。Scrapy正在重定向直接鏈接

開始url只有一個鏈接(這是一個直接鏈接),並從該鏈接數據必須被刮掉(如果我使用BaseSpider並提供直接鏈接,數據正在被成功抓取)。然而,當我運行CrawlSpider時,它正在得到一些被請求的301請求,並且控制不會來到執行scraping的parse_item()。

我有一個名爲main_page.html的localhost頁面,它有一個鏈接到http://www.flipkart.com/office-supplies/pen/faber-castell/itmd4fpkgkd7e3fj?pid=pend4fpkyk2w9fd4&_l=U0SclLhlhi7jGPVIA8xWyA--&_r=tcVDd6I7AkBG9cR2hX21MA--&ref=5b471a78-5264-4e09-ba61-03f8965e10d0,我認爲它是一個直接鏈接。上運行的爬行蜘蛛,我看到在scrapy-

2011-12-05 15的輸出如下:54:34 + 0530 [flipkart_spider] DEBUG:爬(200)的http://localhost/main_page.html >(引用者:無)
2011-12-05 15:54:35 + 0530 [flipkart_spider] DEBUG:將(301)重定向到http://www.flipkart.com/office-supplies/pen/faber-castell/ itmd4fpkgkd7e3fj?PID = pend4fpkyk2w9fd4 & _l = U0SclLhlhi7jGPVIA8xWyA-- & _r = tcVDd6I7AkBG9cR2hX21MA-- & REF = 5b471a78-5264-4e09-ba61-03f8965e10d0從> http://www.flipkart.com/office-supplies/pen/faber- castell/itmd4fpkgkd7e3fj?_l = U0SclLhlhi7jGPVIA8xWyA-- & _r = tcVDd6I7AkBG9cR2hX21MA - & PID = pend4fpkyk2w9fd4 & REF = 5b471a78-5264-4e09-ba61-03f8965e10d0>

我在parse_item()打印聲明,不叫。這裏有什麼問題?

回答

2

我想你應該在你的網址?後刪除一切,所以它會成爲:http://www.flipkart.com/office-supplies/pen/faber-castell/itmd4fpkgkd7e3fj

更新:

在大多數情況下屬性的查詢字符串僅用於東西不影響內容,例如:來自哪個頁面,哪個菜單項處於活動狀態,會話ID。如果您將url從瀏覽器複製到抓取工具中,則有可能url中的某些參數與您的用戶代理有關,並在使用不同代理打開相同的url時會產生不可預知的結果。

如果您知道哪些參數可以安全地從網址中刪除,您還可以將自己從大量重複的網頁中拯救出來。通常情況下,您可以訪問不同類別的相同商品,但每次商品的網址都會有所不同,因爲參數ref=我想知道您來自哪個網頁的信息。

+0

謝謝。有效。但我不明白爲什麼?我試圖抓取一個網站,讓我可以跟隨這樣的鏈接(與?) – Siddharth