【发布时间】:2015-07-24 02:45:01
【问题描述】:
我正在使用 JS 脚本在页面上运行一些计算。然后我使用 selenium 从results div 中获取文本。
results = json.loads(driver.find_element_by_id("results").text)
我非常希望避免使用 selenium,而是使用 requests:
results = json.loads(get(<url goes here>).text)
为了实现这一点,我需要以某种方式将整个页面(包括 JS)替换为简单 JSON 字符串(无 HTML 标记)形式的结果。换句话说:
<html>
<head>
...
</head>
<body>
<div id="results">{"blah":"1234", "test":"4567", ...}</div>
...
<script>
...
</script>
</body>
</html>
变成适合get(...).text的纯文本字符串
{"blah":"1234", "test":"4567", ...}
此字符串由页面加载后运行的 JS 代码修改。这意味着必须存储结果,然后用于创建没有任何 HTML 或 JS 的全新页面。原始页面完全替换了自己。
另一种方法是使用 JS 替换整个 <html>...</html> 块,然后自行擦除。
不确定这是否可行。
是的,我可能会使用类似的东西:
page = get(<url goes here>)
page.json()
...
我希望有一种方法可以从页面中删除除结果之外的所有内容。
硒部分使用python。
编辑 1:
这里的代码显示了页面的工作方式。
https://jsfiddle.net/pkLu7uqz/
这个想法是最终得到一个只有 JSON 字符串的页面。根本没有 HTML、CSS、JS。只有一行文字。
【问题讨论】:
标签: javascript jquery python html selenium