【发布时间】:2021-11-23 08:15:42
【问题描述】:
更新: Jonas提供的脚本已经解决了大部分问题。 现在,我正在尝试找到一种方法来使用 datepicker 或 sendkey 来设置日期范围,因为每次我重新运行代码时都会自动花费一天时间。
date_start = driver.find_element(By.Xpath, 'date_from')
date_end = driver.find_element(By.Xpath, 'date_to')
date_start.sendKeys("2021-09-24")
date_end.sendKeys("2021-10-01")
原问题: 我正在使用 Selenium WebDriver.Chrome 从无法突出显示以从网站复制和粘贴的表中提取数据,当我尝试使用 BeautifulSoup 提取数据时,我发现数据在 JavaScript 的功能下。 Java表的HTML代码是这样的:
<script>
function initTableData() {
window.initialAnalystData = [{"action_company":"Initiates Coverage On","action_pt":"Announces","analyst":"BTIG","analyst_name":"James Sullivan","currency":"USD","lastTradePrice":24.89},"logo":null}];
window.initialAnalystDate = {"date_from":"2021-09-24","date_to":"2021-10-01"};
window.initialAnalystTime = "11:27";
}
initTableData();
</script>
我是 Selenium 和 JavaScript 的新手,但我尝试了以下代码来获取数据列表,但它不起作用。
element = driver.findElement(By.tagName("script"));
htmlCode = driver.executeScript("return arguments[0].innerHTML;", element)
接下来我应该尝试什么? 网址是here。
谢谢!
【问题讨论】:
-
如果你要运行 javascript,你可以得到“window.initialAnalystData, etc...”。你也可以从 DOM 中获取你需要的信息。
-
感谢您的建议!我以后一定会尝试运行它!
标签: javascript python selenium