我想使用 chromedriver 从 fanfiction.net 上抓取一些故事。我尝试以下操作:
from selenium import webdriver
import time
path = 'D:\chromedriver\chromedriver.exe'
browser = webdriver.Chrome(path)
url1 = 'https://www.fanfiction.net/s/8832472'
url2 = 'https://www.fanfiction.net/s/5218118'
browser.get(url1)
time.sleep(5)
browser.get(url2)
Run Code Online (Sandbox Code Playgroud)
第一个链接打开(有时我必须等待 5 秒钟)。当我想加载第二个网址时,cloudflare 介入并希望我解决验证码 - 这是无法解决的,至少 cloudflare 无法识别这一点。如果我在 chromedriver 中手动输入链接(因此在 GUI 中),也会发生这种情况。但是,如果我在普通 Chrome 中执行相同的操作,一切都会正常运行(我什至没有得到第一个链接的等待期) - 即使在私人模式下并且所有 cookie 都被删除。我可以在几台机器上重现这个。现在我的问题是:根据我的直觉,chromedriver 只是允许控制的普通 Chrome 浏览器。与普通 chrome 有什么区别,Cloudflare 如何区分两者,以及如何将我的 chromedriver 屏蔽为普通 chrome?(我不打算在很短的时间内加载很多页面,所以它不应该看起来像一个机器人)。我希望我的问题很清楚
selenium python-3.x cloudflare selenium-chromedriver undetected-chromedriver