我正在开发一个web scraper,我正在抓取的站点在页面上有一个script
元素,如下所示:
<script type="text/javascript">
jQuery(window).load(function($) {
Morris.Line({
element: 'mpr-graph',
data: [
{'date': '25-04-2017','y':'1.05'},
{'date': '25-04-2017','y':'1.50'},
...
我想要的:
我想获取传递给Morris.Line
的对象的data
属性,这样我就可以将数据转换为可用的数据。在
我已经成功地使用周围的div的id和标记名script
选择了正确的元素作为Selenium WebElement,但是现在我被卡住了。在
有没有一种方法可以使用Selenium获取脚本元素的文本?text
属性为空,因为它只返回页面上为给定元素显示的文本。在
我的尝试:
因为我可以通过获取元素的text属性在浏览器控制台中获取文本,所以我尝试使用execute_script
。在
这将返回一个WebElement,所以我们回到第一步,但至少我们知道它在工作,所以我们可以继续:
script_text = driver.execute_script("return document.getElementById('avg').getElementsByTagName('script').text;")
我认为这可能是可行的,因为它可以在浏览器控制台中工作,但是Selenium没有返回任何内容。在
script_text = driver.execute_script("return document.getElementById('avg').getElementsByTagName('script').innerHTML;")
同上。在
您应该能够使用XPath根据其内容查找
SCRIPT
标记如果由于某些原因不够具体(不止一个
SCRIPT
标记包含“mpr graph”),那么可以将其调整为SCRIPT
标记中唯一的文本。在相关问题 更多 >
编程相关推荐