【问题标题】:Not able to open the webpage through selenium python无法通过 selenium python 打开网页
【发布时间】:2021-09-25 14:18:00
【问题描述】:

我是 selenium python 的新手,我正在尝试从网站上抓取数据。下面是代码,我已经采取了所有必要的预防措施以免被阻止。

from random import randrange
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

#Function to generate random useragent.
def generate_user_agent():
    user_agents_file = open("user_agents.txt", "r")
    user_agents = user_agents_file.read().split("\n")
    i = randrange(len(user_agents))
    userAgent = user_agents[i]
    user_agents_file.close()
    return userAgent

#Function to generate random IP address.
def generate_ip_address():
    proxies_file = open("proxyscrape_premium_http_proxies.txt", "r")
    proxies = proxies_file.read().split("\n")
    i = randrange(len(proxies))
    proxy = proxies[i]
    proxies_file.close()
    return proxy

#Function to create and set chrome options.
def set_chrome_options():
    proxy = generate_ip_address()
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    options.add_argument("--incognito")
    options.add_argument(f'--proxy-server={proxy}')
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    return options, proxy

#Function to create a webdriver object and set its properties.
def create_webdriver():
    options, proxy = set_chrome_options()
    userAgent = generate_user_agent()
    webdriver.DesiredCapabilities.CHROME['proxy'] = {
    "httpProxy": proxy,
    "ftpProxy": proxy,
    "sslProxy": proxy,
    "proxyType": "MANUAL",}
    webdriver.DesiredCapabilities.CHROME['acceptSslCerts']=True
    driver = webdriver.Chrome(options=options, executable_path=r'chromedriver.exe')
    driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
    driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": userAgent})
    return driver

url = 'http://www.doctolib.de/impfung-covid-19-corona/berlin'
driver = create_webdriver()
driver.get(url)

网页没有通过selenium web driver打开(但可以正常打开)。下面是我运行代码时浏览器打开的截图。

如果我遗漏了什么,请告诉我。任何帮助将不胜感激

PS:我正在使用高级代理进行 IP 轮换。

Browser_output

【问题讨论】:

  • 快速浏览后我认为您必须检查您的代理列表。

标签: python selenium selenium-webdriver web-scraping automation


【解决方案1】:

我过去也有过类似的经历,网站检测到 selenium 正在被使用,即使在使用 IP 轮换、用户代理轮换或使用代理等多种方法之后也是如此。

我建议你使用undetected_chromedriver 库。

pip install undetected-chromedriver

它能够毫无问题地加载网站。 代码sn-p如下:-

import undetected_chromedriver.v2 as uc
driver = uc.Chrome()
with driver:
    driver.get('http://www.doctolib.de/impfung-covid-19-corona/berlin')

【讨论】:

    猜你喜欢
    • 2017-08-02
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 2014-12-20
    • 2015-09-14
    • 2021-05-05
    • 2015-04-10
    相关资源
    最近更新 更多