bounty还有7天到期。回答此问题可获得+50声望奖励。Dini想要引起更多关注这个问题:我真的需要这方面的帮助,所以如果你能给予我的代码,我会非常感激。
我真的需要帮助。我必须读取数千个HTML文件来提取数据集的值,但HTM文件有javascript,pandas会给我变量的名称而不是值。我使用的代码非常简单,使用pandas读取它,然后查找它找到的表。我将分享一个链接的HML文件,代码和图像的价值,我试图得到。谢谢你。
url = "https://raw.githubusercontent.com/OperationsMD/powermill/main/Project_Summary.html"
import pandas as pd
df_mill = pd.read_html(url)
print(df_mill[2])
当我应该得到:总速度:03:09:09我在图片中看到的
2条答案
按热度按时间k75qkfdt1#
首先,我认为这不是解决这个问题的最佳方法。我使用selenium web驱动来执行javascript。由于数据隐藏在XML文件后面,我将其转换为HTML,然后使用Selenium打开HTML对象。这允许浏览器执行JavaScript。对于驱动程序,我使用了undetected_chromedriver,因为它对我来说更容易安装。
别忘了安装Selenium。
zzoitvuj2#
但是HTM文件有javascript,pandas给我的是变量名而不是值。
那就是说...你需要实际执行JavaScript部分来获取这些值。
虽然Pandas非常适合处理结构化数据,如HTML页面中的表,但它不执行JavaScript代码。因此,它将无法检索JavaScript设置的值。
一种可能的方法是使用selenium 4.9.1,这是Selenium WebDriver的Python语言绑定:一个Python库,允许您自动执行浏览器操作。
Selenium实际上会在一个真实的的浏览器中加载网页,执行任何JavaScript,然后允许您访问生成的DOM(文档对象模型),包括JavaScript所做的任何修改。
下面是一个如何使用Selenium检索您要查找的值的示例:
这段代码启动一个新的浏览器会话,导航到所需的网页,然后检索
totalTime
JavaScript变量的值。请将'
/path/to/chromedriver
'替换为您安装ChromeDriver的路径。你可以download the ChromeDriver from here。这是一个有效的方法为 * 一个 * 页。为了上千...您可能会遇到资源问题,因此要逐步测试它!(而且看起来不像是DDos攻击;不要在太短的时间内完成太多的请求。