我正在尝试使用selenium和使用python的webdriver。
from selenium import webdriver
PROXY = "119.82.253.95:61853"
url = 'http://google.co.in/search?q=book+flights'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % PROXY)
driver = webdriver.Chrome(options=chrome_options, executable_path="/usr/local/bin/chromedriver")
driver.get(url)
driver.implicitly_wait(20)
当我在没有代理的情况下正常访问时,一切都很好。但当我尝试使用代理访问时,它会显示captcha,并显示消息"我们的系统检测到来自您计算机的异常流量"。我该如何避免它?
出于某种原因,谷歌认为来自代理IP的流量以一种不寻常的方式运行,他们希望确保你不是机器人(你的Selenium代码就是这样(。
也可以检测是否有人专门使用Selenium,但我怀疑谷歌是否在这样做,尤其是如果你在不使用代理时使用Selenium。如果你没有在代理上使用Selenium,那么你应该通过Fiddler比较你发送给谷歌的内容。
也许你可以尝试在不同的IP上安装一个代理。
您是否可以访问代理IP上的机器?你可以尝试直接从那里运行代码,而不使用代理,然后看看它说了什么。
Chrom查看本地局域网设置,因为这个谷歌会检查你,你是人类还是机器人。你可以做到:
PROXY = "119.82.253.95:61853"
webdriver.DesiredCapabilities.CHROME['proxy'] = {
"httpProxy": PROXY,
"ftpProxy": PROXY,
"sslProxy": PROXY,
"proxyAutoconfigUrl": '',
"noProxy": '',
"proxyType": "MANUAL",
"class": "org.openqa.selenium.Proxy",
"autodetect": False
}
with webdriver.Chrome(executable_path="C:webDriverchromedriver.exe") as driver:
driver.get('http://www.google.com')
# enter your code
我测试了这个和它的工作,如果你需要更多的信息,你可以在githup 获得帮助