【问题标题】:Using python scrapy to scrape the next page comments使用python scrapy抓取下一页评论
【发布时间】:2018-03-21 08:09:19
【问题描述】:

我正在使用python scrapy获取用户评论cmets,可能有多个页面,我需要点击“查看更多”才能看到更多的cmets。

这是我要抓取的页面的链接: https://en.drivy.com/car-rental/berlin/dacia-dokker-218119

我注意到如果评论 cmets 超过 10 个,我需要单击“查看更多”链接才能获得后续 cmets。 我还注意到“查看更多”的 URL 链接是 https://en.drivy.com/cars/218119/reviews?page=2&rel=next

但是,如果我使用 scrapy 访问 https://en.drivy.com/cars/218119/reviews?page=2&rel=next,网站会将我重定向回 https://en.drivy.com /car-rental/berlin/dacia-dokker-218119 我真的无法获得接下来的十个 cmets。 (我想知道网站是否使用 cookie 或会话 ID 并将我的 scrapy 识别为新访问)

我知道我可以使用python selenium打开网页并单击“查看更多”以获取cmets,但是selenium非常慢,我希望我可以使用scrapy。

有人可以帮我解决这个问题吗?或者至少给我一个前进的方向?提前致谢。

【问题讨论】:

    标签: python pagination scrapy


    【解决方案1】:

    您应该设置"Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" 标头。您将捕获包含 cmets 文本的 JS 对象。

    yield Request("https://en.drivy.com/cars/218119/reviews?page=2&rel=next", parse = ..., ..., headers={'Accept': "*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"})

    【讨论】:

    • 感谢您的回复。我尝试按照您的说明设置标题。但是,我收到此错误 2017-10-10 16:24:45 [scrapy.downloadermiddlewares.retry] 调试:重试 en.drivy.com/cars/218119/reviews?page=2&rel=next>(失败 1 次):500 内部服务器错误
    • 您是否包含其他标头(尤其是 X-CSRF-Token)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    相关资源
    最近更新 更多