Python 使用铬合金无头模式效果较差?

Python 使用铬合金无头模式效果较差?,python,selenium,selenium-webdriver,web-scraping,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Web Scraping,Selenium Chromedriver,我正在使用selenium+beautiful soup,使用selenium打开包含大量javascript的页面,并使用javascript命令将其转换为BeautifulSoup对象,以从体育网站中获取数据,但由于某些原因,我无法使用无头浏览器。当我使用chromedriver实现一个无头浏览器时,我不会像打开并运行chromedriver时那样刮取太多的数据。有没有人有过类似的问题,或者有没有人有什么建议 def get_bs(self, url, sport_url):

我正在使用selenium+beautiful soup,使用selenium打开包含大量javascript的页面,并使用javascript命令将其转换为BeautifulSoup对象,以从体育网站中获取数据,但由于某些原因,我无法使用无头浏览器。当我使用chromedriver实现一个无头浏览器时,我不会像打开并运行chromedriver时那样刮取太多的数据。有没有人有过类似的问题,或者有没有人有什么建议

    def get_bs(self, url, sport_url):
        driver = webdriver.Chrome(executable_path='drivers/chromedriver')
        driver.get(url + sport_url)
        time.sleep(3)

        site = driver.execute_script('return document.documentElement.outerHTML')
        driver.close()
        return BeautifulSoup(site, 'html.parser')

我的项目非常长,由多个文件组成。但是,上面是我用来访问网站并将网站转换为BeautifulSoup对象的函数,然后我将其插入另一个函数中


谢谢

事实上,网站很容易通过navigator.webdriver javascript变量检测到您正在使用Chrome自动化。根据您使用的Chrome版本,这仅在无头模式下有效。在较新的版本中,他们对此进行了修补,并且在使用selenium时始终设置该变量

导航到网页后,请尝试运行:

print(driver.execute_script("return window.navigator.webdriver"))

如果返回True,则您可能受到限制/阻止。

您的测试结果如何?是否在两次运行中都设置了headless和not变量?无论是在headless模式下还是在完整的web浏览器中,它们都是真的。这可能不是您的问题。确保您也调整了浏览器的大小。