我试图访问网站,但在无头模式下,我得到这个:
<html><head>
<title>Access Denied</title>
</head><body>
<h1>Access Denied</h1>
You don't have permission to access "http://www.bybit.com/fiat/trade/otc/?" on this server.<p>
Reference #18.3f62645f.1657282455.2f87631
</p></body></html>
因此,我通过添加以下内容来使用用户代理:
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36'
chrome_options.add_argument(f'user-agent={user_agent}')
它在我的本地机器上运行良好,但当我在Heroku服务器上部署它时,我遇到了同样的问题。
主要部分代码:
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = os.environ.get("GOOGLE_CHROME_BIN")
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--disable-features=NetworkService")
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])
chrome_options.add_argument('--allow-running-insecure-content')
chrome_options.add_argument("window-size=800,600")
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36'
chrome_options.add_argument(f'user-agent={user_agent}')
bybit_url = 'https://www.bybit.com/fiat/trade/otc/?actionType=0&token=USDT&fiat=RUB&paymentMethod=75'
driver.get(bybit_url)
sleep(5)
print(driver.page_source)
2条答案
按热度按时间23c0lvtd1#
可能 * 访问被拒绝 *,因为Selenium驱动的 ChromeDriver 启动的google-chrome * 浏览上下文 * 被检测为bot。
要避免检测,您需要使用参数
--disable-blink-features=AutomationControlled
,如下所示:lztngnrs2#
我在Heroku上遇到了完全相同的问题,试图用 selenium 访问bybit站点。我使用了这个用户代理,它对我很有效:“Mozilla/5.0(X11; Linux x86_64)苹果网络工具包/537.36(KHTML,类似壁虎)Chrome浏览器/106.0.0.0Safari浏览器/537.36'
在许多其他尝试和错误的尝试中,我比较了本地和Heroku上使用的用户代理,找到了这个用户代理。
本地:
结果:
本地:
结果:
关于Heroku:
结果:
关于Heroku:
获胜结果: