【问题标题】:Selenium will not show javascript loaded table in webpage with PythonSelenium 不会在带有 Python 的网页中显示 javascript 加载的表
【发布时间】:2020-12-06 05:02:40
【问题描述】:

我正在尝试抓取以下网页:https://steamdb.info/app/730/graphs/ (我已经获得了网站的许可)

问题是“每月明细”表似乎是由 Javascript 加载的,而 BeautifulSoup 不起作用。使用 Selenium 打开网页时,显示“您必须启用 Javascript。”表,使用 Selenium 时应启用该表。这是我的代码:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--enable-javascript")
browser = webdriver.Chrome(options=options)
browser.maximize_window()

url = "https://steamdb.info/app/730/graphs/"
browser.get(url)

有什么办法可以解决这个问题?

页面的外观:

它在 Selenium 上的外观:

【问题讨论】:

    标签: javascript python selenium web-scraping beautifulsoup


    【解决方案1】:

    试试这个,看看您是否不再收到该错误消息:

    options.add_argument("javascript.enabled", True)
    

    您可能还需要查看“等待”here 以确保网页上的异步操作有时间加载。

    【讨论】:

    • 它返回以下内容:TypeError: add_argument() 接受 2 个位置参数,但给出了 3 个
    • 好的,它不喜欢这样。您可以尝试“javascript.enabled=true”,但现在我正在抛出随机解决方案。在我们进入这个之前,你有没有想过直接抓取图表? steamdb.info/api/GetGraph/?type=concurrent_week&appid=730 编辑:如果他们给了你权限,他们可能已经允许这种爬虫,他们通常不允许(例如,通过白名单的 ip、令牌)。
    【解决方案2】:

    更新:

    启用或禁用 javascript:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    chrome_options = Options()
    
    #value 1 enables it , if you set to 2 it disables it     
    chrome_options.add_experimental_option( "prefs",{'profile.managed_default_content_settings.javascript': 1})
    
    driver =webdriver.Chrome(r".\chromedriver.exe",options=chrome_options)
    
    
    driver.get("https://www.google.com")
    

    这不会解决您的问题

    您可以通过在地址栏中输入以下内容来检查 javascript 是否已启用:

     chrome://settings/content/javascript?search=javascript
    

    您可以看到,即使启用它,网站也无法正常加载。

    似乎他们已启用安全性以避免在其网站中使用硒

    上一个答案:

    没有名为 --enable-javascript chromium 项目的命令行参数,请尝试使用上述 javascript-harmony 标志。

    以下是支持的 chrome 标志的完整列表:

    https://peter.sh/experiments/chromium-command-line-switches/#login-profile

    如果需要更多帮助,请添加屏幕截图和其他信息

    【讨论】:

    • 试过了,但也没有在网页上加载表格
    • 添加屏幕截图和 html 你正在尝试做什么,你怎么知道它的 javascript 问题?
    • @user888905050219 添加到答案中,似乎该网站已启用安全性以避免在其网站中使用机器人
    • 奇怪,因为他们说在获得许可的情况下可以进行抓取和抓取
    • @user888905050219 在打开的浏览器中点击比较图表按钮,可以看到图表加载成功。与开发人员交谈为什么它不能在索引页面上加载
    猜你喜欢
    • 1970-01-01
    • 2018-04-18
    • 2013-11-13
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2020-06-24
    相关资源
    最近更新 更多