gpt4 book ai didi

python - 使用scrapy时如何绕过 'cookiewall'?

转载 作者:行者123 更新时间:2023-11-30 22:25:02 24 4
gpt4 key购买 nike

我是 Scrapy 的新用户。在遵循从网站提取数据的教程后,我试图在论坛上完成类似的事情。

我想要的是提取论坛页面上的所有帖子(首先)。然而,这个特定的论坛有一个“cookie 墙”。所以当我想从 http://forum.fok.nl/topic/2413069 中提取时,每次 session 我首先需要单击“是,我接受 cookies”按钮。

我的基本抓取工具目前如下所示:

class FokSpider(scrapy.Spider):
name = 'fok'
allowed_domains = ['forum.fok.nl']
start_urls = ['http://forum.fok.nl/']

def parse(self,response):
divs = response.xpath("//div").extract()
yield {'divs': divs}
pass

我得到的 div 不是来自实际的论坛帖子,而是来自 cookie wall。

这是按钮的 html:

<a href="javascript:acceptCookies()" class="button acc CookiesOK" onclick="document.forms['cookies'].submit();acceptCookies();">Ja, Ik wil een goed werkende site...<span class="smaller">...en accepteer de cookies</span></a>

任何人都可以为我指明如何绕过此 cookiewall(人为“单击”按钮)并转到我正在尝试抓取的实际网页的正确方向吗? (即使是正确的 Google 搜索词/文档页面等也会非常有帮助)

最佳答案

最后我找到了多种方法来解决这个问题:

  • 只需将 /?token=77c1f767bc31859fee1ffe041343fa48&allowcookies=ACCEPTEER+ALLE+COOKIES 添加到起始网址即可解决此特定情况
  • 后来我改用了 CrawlSpider 而不是普通的 Spider,然后我可以将 cookie 按钮的 xpath 添加为第一个 rule
  • 使用前面提到的 Selenium 单击按钮也可以,但会带来很多不必要的麻烦......

关于python - 使用scrapy时如何绕过 'cookiewall'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47651881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com