【问题标题】:Web Scraping: Problems with the HTML source code [duplicate]Web Scraping:HTML 源代码的问题 [重复]
【发布时间】:2020-06-05 21:10:11
【问题描述】:

我尝试使用 Python/BeautifulSoup 从这个站点:https://price.metal.com/Rare-Earth(稀土材料价格)网络抓取数据。问题不在于 Python,而在于网站的 HTML 源代码。当我使用 Firefox 的“检查元素”功能时,我得到了我正在寻找的所需数据/HTML 标记:

<div class="td-border-item frame-text-over-flow" title="294,000 ~ 299,000"> 294,000 ~ 299,000

但问题是当我查看https://price.metal.com/Rare-Earth的页面源时,我找不到上面的元素

所以我很好奇是否还有另一个 HTML 文件包含我正在寻找的信息?

【问题讨论】:

  • 是的。有对 https://price.metal.com/api/get_product_lists?t=1582288095974&amp;second_level_name=rare+earth 的 AJAX 调用,其中有 "newest_price":{"Average":296500,"Highs":299000,"Low":294000,
  • 数据可能已通过 JavaScript 加载和插入。实际加载了哪些资源,使用浏览器开发工具、网络面板应该很容易弄清楚。

标签: html css


【解决方案1】:

此元素不包含该值,因为它是通过异步机制加载的(例如,Ajax 在该页面加载后附加 HTML 值或绑定数据)。

我建议你将它与 Selenium Python 并行结合,检查标签并通过 Selenium 获取价值。你会得到它。

https://selenium-python.readthedocs.io/

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2016-06-08
    • 2020-07-28
    • 2010-12-01
    相关资源
    最近更新 更多