首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Selenium无法读取JS内容?

问Python Selenium无法读取JS内容?
EN

Stack Overflow用户
提问于 2022-06-08 11:19:20
回答 1查看 81关注 0票数 0

请注意这个问题仍然是打开的,因为建议的“答案”仍然提供相同的输出,因为它不能解释为什么JS不在该页面上运行,或者为什么selenium不能提取它

我正在尝试读取由JS呈现的:http://147.235.97.36/ (Hp打印机)的页面源。

所以我写到:

代码语言:javascript
复制
driver.get(url)
wait_for_page(driver)
source = driver.page_source
print(source)

但在印刷品中,我看到:

代码语言:javascript
复制
<p>JavaScript is required to access this website.</p>

<p>Please enable JavaScript or use a browser that supports JavaScript.</p>

而且有些内容不存在,所以我将代码更改为:

代码语言:javascript
复制
driver.get(url)
wait_for_page(driver)
source = driver.execute_script("return document.getElementsByTagName('html')[0].innerHTML")
print(source)

同样的输出,你能帮我理解这里的问题吗?

下面是我的init_driver函数:

代码语言:javascript
复制
def init_driver():
    # --Initialize Driver--#
    chrome_options = Options()
    chrome_options.add_argument("--headless")  # Run in Background
    chrome_options.add_argument('--disable-gpu') if os.name == 'nt' else None  # Windows workaround
    prefs = {"profile.default_content_settings.images": 2,
             "profile.managed_default_content_settings.images": 2}  # Disable Loading of Images
    chrome_options.add_experimental_option("prefs", prefs)
    chrome_options.add_argument('--ignore-ssl-errors=yes')
    chrome_options.add_argument('--ignore-certificate-errors')
    chrome_options.add_argument("--window-size=1920,1080")  # Standard Window Size
    chrome_options.add_argument("--pageLoadStrategy=normal")
    driver = None
    try:
        driver = webdriver.Chrome(options=chrome_options, service=Service('./chromedriver'))
        driver.set_page_load_timeout(REQUEST_TIMEOUT)
    except Exception as e:
        log_warning(str(e))
    return driver
EN

回答 1

Stack Overflow用户

发布于 2022-06-08 14:32:42

您可以添加一些参数以避免geting detected,并按如下方式打印:

  • 代码块:

选项= Options() options.add_experimental_option("excludeSwitches",(“启动-最大化”)options.add_argument“启用-自动化”) options.add_experimental_option('excludeSwitches',‘启用-日志’) options.add_experimental_option('useAutomationExtension',False) options.add_argument('--disable-blink-features=AutomationControlled') s=服务(‘C:\BrowserDrivers\chromedriver.exe’)驱动程序= webdriver.Chrome(service=s ),( options=options) driver.get(“http://147.235.97.36/"”)打印(driver.execute_script)(“返回driver.get”)

  • 控制台输出:
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72544798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档