Chrome Selenium无法打开第二页

icomxhvb  于 2022-12-06  发布在  Go
关注(0)|答案(2)|浏览(166)

我正在使用Selenium打开一个网站的不同页面。我试了很多次,但是在第一次GET调用后浏览器没有打开第二个网页。我在Chrome和Safari上都试过了。下面是我的代码:

driver = webdriver.Chrome()
driver.get("https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-2")
driver.set_page_load_timeout(30)
driver.get("https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-3")

下面是我在第二次调用时得到的错误:

来自网络日志的信息是错误504,但是我已经验证了它在浏览器的另一个窗口上完成时工作完美,没有自动化

gfttwv5a

gfttwv5a1#

更多关于您的用例的信息将有助于构建一个更规范的答案。然而,我能够使用最小化的代码块访问Page 2 of justdial.com/Chennai/Hr-Consultancy-Services,如下所示:

  • 代码块:
from selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-2")
  • 浏览器快照:

但是,当一个接一个地发送多个get()时:

driver.get("https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-2")
driver.get("https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-3")

似乎检测到由ChromeDriver启动的 *Chrome浏览器 *,并显示以下错误:

An error occurred while processing your request.
Reference #97.e5732c31.1612205693.6fd2708

溶液

要避免检测,您可以添加以下选项:

--disable-blink-features=AutomationControlled

示例

from selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
options.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-2")
driver.get("https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-3")
w7t8yxp5

w7t8yxp52#

options.add_experimental_option(
    "excludeSwitches", ['enable-automation'])

options.add_argument(
    "user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36")
options.add_argument("--remote-debugging-port=9222")

driver = webdriver.Chrome(options=options)
driver.get(
    "https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-2")
driver.set_page_load_timeout(30)
driver.get(
    "https://www.justdial.com/Chennai/Hr-Consultancy-Services/nct-10258625/page-3")

该网站正在使用上述代码检测自动化:)

您也可以在单行中执行此操作

下面就加上一个论点:

options.add_argument('--disable-blink-features=AutomationControlled')

禁用enable-automation或禁用自动控制器会禁用webdriver.navigator,很少有网站使用它来检测自动脚本

相关问题