Scrapy正在重定向直接链接

时间:2011-12-05 10:29:46

标签: python scrapy

我正在使用CrawlSpider从网页抓取和提取数据。

启动网址只有一个链接(这是一个直接链接),并且必须从该链接中删除数据(如果我使用BaseSpider并提供直接链接,则数据将被成功删除)。但是,当我运行CrawlSpider时,它会得到一些已经满足的301请求,并且控制权不会转到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:Crawled(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()中有一个未被调用的打印语句。这有什么不对?

1 个答案:

答案 0 :(得分:2)

我认为您应该删除网址中?之后的所有内容,以便它变为:http://www.flipkart.com/office-supplies/pen/faber-castell/itmd4fpkgkd7e3fj

更新

在大多数情况下,查询字符串中的属性仅用于不影响内容的内容,例如:您来自哪个页面,哪个菜单项处于活动状态,会话ID。如果您将网址中的网址复制到抓取工具中,则网址中的某些参数可能与您的用户代理有关,并且在使用其他代理打开相同的网址时会产生不可预测的结果。

如果您知道哪些参数可以安全地从网址中删除,您还可以从大量重复页面中保存自己。通常你可以访问不同类别的相同项目,但每次项目的网址都不同,因为参数ref=我认为会告诉您来自哪个页面的信息。