如何使用 Python 从动态 HTML 内容中检索值
当尝试从动态加载内容的网站检索数据时,传统方法使用Python 的请求或 BeautifulSoup 库可能会失败。这是因为这些库不会解释生成数据的 JavaScript 代码。
理解问题
在提供的示例中,相关页面使用 Handlebars 模板来创建动态内容。使用浏览器的开发者工具检查 HTML 源代码时,您可能会发现类似“{{formatPricemedian}}”的模板占位符,而不是实际值。
解决方案
要从动态生成的内容中检索实际值,您需要使用解释 JavaScript 的技术。考虑以下选项:
将 Selenium 与 BeautifulSoup 结合使用
示例页面 ( eve-central.com),使用 Selenium 检索“中值”值:
<code class="python">from bs4 import BeautifulSoup from selenium import webdriver driver = webdriver.Firefox() driver.get('http://eve-central.com/home/quicklook.html?typeid=34') html = driver.page_source soup = BeautifulSoup(html) for tag in soup.find_all('span', class_="a-price-amount"): print(tag.text)</code>
此代码使用 Selenium 加载页面,使用 BeautifulSoup 解析渲染的 HTML,提取具有特定类 ID 的标签和打印其文本内容,其中包括所需的“中位数”值。
以上是Python 如何从动态生成的 HTML 内容中检索值?的详细内容。更多信息请关注PHP中文网其他相关文章!