2011-12-05 93 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