【问题标题】:BeautifulSoup cannot parse through html tag marked with =$0BeautifulSoup 无法通过标有 =$0 的 html 标签进行解析
【发布时间】:2022-11-16 12:48:17
【问题描述】:

“=$0”表示标签是最后选择的 Dom 节点,这意味着所有 html 都是稍后通过 javascript 添加的,这使得标签在用漂亮的汤解析它时看起来是空的。 This是我指的网站,我想从<div class = "jw-wrapper jw-reset"> =$0的视频标签中获取src https://imgur.com/a/F0OSwUR在网页上展示视频标签的证明。 这个 post 问了同样的问题,但是在响应中用户显示了一个 json 结果并告诉我们解析它。但是我不知道如何在我的情况下实现它。

我可以使用 json 结果来获取视频标签吗?如果可以,如何获取?或者我可以使用其他方法吗?

编辑>> 这是我的代码:

DRIVER_PATH = '/path/to/chromedriver'
driver = webdriver.Chrome(options=options, executable_path=DRIVER_PATH)
driver.get("https://mplayer.me/default.php?id=MTc3ODc3")
h1 = driver.find_element(By.TAG_NAME, "video")
print(h1.text)
driver.quit()

输出是 DeprecationWarning: executable_path has been deprecated, 请传入一个Service对象 driver = webdriver.Chrome(选项=选项,executable_path=DRIVER_PATH) [然后是一个空行]

【问题讨论】:

    标签: javascript python html web-scraping beautifulsoup


    【解决方案1】:

    您不能使用 BeautifulSoup 直接提取 src URL,因为它不在随请求返回的 HTML 代码中。因此,在将其与 BeautifulSoup 一起使用之前,您需要解析 HTML 和 Javascript。你可以通过简单的谷歌搜索找到 Javascript 解析包。

    但是,我建议使用 Selenium 代替这项工作,因为它将使用真正的浏览器来运行 JavaScript 代码并获取您的 src URL。

    【讨论】:

    • @Boros 仅共享错误无济于事。与错误一起共享代码。我怎么知道你的代码有什么错误消息?
    • 刚刚补充说
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 2014-12-10
    • 2017-10-30
    • 1970-01-01
    • 2020-11-29
    • 2016-01-30
    • 1970-01-01
    相关资源
    最近更新 更多