javascript - 在 python 网络抓取期间触发 js 事件

标签 javascript python

# ./scrape.py
from lxml import html
import requests

url = "http://www.my-target-url.com"

page = requests.get(url)
# can I insert some js event codes to execute here?
tree = html.fromstring(page.content)
print tree.xpath("/html/to/target/data/text()")[0]

我做这个是为了抓取目标页面,它有几个按钮来更改数据。我想要所有可以从这些按钮获得的数据。我搜索了发送带参数的 POST 或 GET 的方式。似乎没有其他办法,只能从该网页触发 js 事件(就像我可以在 chrome 开发人员的控制台中做的那样)。

有什么方法可以执行 js 事件来更改此 python 代码中所需数据的响应对象?我应该使用请求以外的其他库吗?或者我可以搜索的其他方式?(比如在后面创建一些网络浏览器对象并使用它?那有什么帮助?)

最佳答案

简答,不。

所有的 javascript 事件都由浏览器的 js 引擎处理。这意味着您还需要一个 JavaScript 引擎来处理和执行脚本并触发事件。

关于javascript - 在 python 网络抓取期间触发 js 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34482144/

相关文章:

javascript - 将多维数组转换为对象

javascript - (Captivate) 使用 JavaScript 隐藏对象

javascript - 如何在 JavaScript 中将元素插入嵌套数组?

python - Pandas - 每天日期范围内的值总和

python - 谷歌应用程序引擎 : ImportError httplib2 in google api python client hello world

python - 如何在 Jupyter Notebook 中使用 sklearn tree 和 export_graph_viz 调整树的图像大小

javascript - 有没有办法处理 websocket onmessage 处理程序,就像附加到 jQuery 中的 XHR 延迟对象的完成方法处理程序一样

javascript - 在 Node ,js( typescript )中打开文件对话框

python - 使用 beautifulsoup 提取 url

python - TensorFlow 用户应该更喜欢 SavedModel 而不是 Checkpoint 或 GraphDef?