【问题标题】:Scrapy is redirecting direct linksScrapy 正在重定向直接链接
【发布时间】:2012-01-13 02:41:37
【问题描述】:

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

起始 url 只有一个链接(这是一个直接链接),并且必须从该链接中抓取数据(如果我使用 BaseSpider 并提供直接链接,数据将被成功抓取)。但是,当我运行 CrawlSpider 时,它会收到一些奇怪的 301 请求,并且控制不会到达执行抓取的 parse_item()。

我有一个名为 main_page.html 的本地主机页面,它有一个指向 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] 调试:已爬网 (200) http://localhost/main_page.html>(引用者:无)
2011-12-05 15:54:35+0530 [flipkart_spider] 调试:重定向 (301) 到 http://www.flipkart.com/office-supplies/pen/faber-castell/itmd4fpkgkd7e3fj?pid=pend4fpkyk2w9fd4&_l=U0SclLhlhi7jGPVIA8xWyA--&_r=tcVDd21MA-R2Ak -&ref=5b471a78-5264-4e09-ba61-03f8965e10d0> 来自 http://www.flipkart.com/office-supplies/pen/faber-castell/itmd4fpkgkd7e3fj?_l=U0SclLhlhi7jGPVIA8xWyA--&_r=tcVDd6I7AkBG9cR2hX21MA--&pid=pend4fpkyk2w9fd4&ref=5b471a78-0264-4e05e16d-pba3--&pid=pend4fpkyk2w9fd4&ref=5b471a78-0264-4e090-pba >

我在parse_item() 中有一个未调用的打印语句。这里有什么问题?

【问题讨论】:

    标签: python scrapy


    【解决方案1】:

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

    更新:

    在大多数情况下,查询字符串中的属性仅用于不影响内容的事物,例如:您从哪个页面来到这里,哪个菜单项处于活动状态,会话 ID。如果您将浏览器中的 url 复制到爬虫中,则 url 中的某些参数可能与您的用户代理有关,并且当使用不同代理打开相同的 url 时会产生不可预知的结果。

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

    【讨论】:

    • 谢谢。有效。但我不明白为什么?我正在尝试抓取一个网站,该网站为我提供了这样的链接(使用?)
    猜你喜欢
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2011-08-24
    相关资源
    最近更新 更多