Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在python web抓取期间触发js事件_Javascript_Python - Fatal编程技术网

Javascript 在python web抓取期间触发js事件

Javascript 在python web抓取期间触发js事件,javascript,python,Javascript,Python,我这样做是为了抓取目标页面,该页面有几个按钮来更改数据。我想要从这些按钮中得到的所有数据。我搜索了发送POST或获取参数的方法。不过,除了从该网页触发js事件之外,似乎没有其他方法(就像我在chrome开发者控制台中所做的那样) 在这个python代码中,是否有任何方法可以执行js事件来更改所需数据的响应对象?我应该使用请求以外的其他库吗?或者其他我可以搜索的方式?(比如在后面制作一些web浏览器对象并处理它?那么有什么帮助呢?简短回答,没有 所有javascript事件都由浏览器的js引擎处理

我这样做是为了抓取目标页面,该页面有几个按钮来更改数据。我想要从这些按钮中得到的所有数据。我搜索了发送POST或获取参数的方法。不过,除了从该网页触发js事件之外,似乎没有其他方法(就像我在chrome开发者控制台中所做的那样)

在这个python代码中,是否有任何方法可以执行js事件来更改所需数据的响应对象?我应该使用请求以外的其他库吗?或者其他我可以搜索的方式?(比如在后面制作一些web浏览器对象并处理它?那么有什么帮助呢?

简短回答,没有


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

您能推荐一些可以像您所说的那样工作的东西吗?有什么有用的js或python库吗?请使用phantomjs或selenium webdriverI。我不认为有一种简单的方法可以做到这一点。因为你想创建一个scraper,我假设它可以在后台工作,也许你可以在你的脚本中单击一个按钮并使用相同的POST/GET参数执行相同的请求时找到所做的请求。谢谢大家!我可以瞥见背景系统。我第一次尝试phantomjs,但速度非常慢,有时甚至连示例代码都不起作用(我不知道为什么直到现在),但selenium非常棒。如果我早知道的话,一定减少了我浪费的时间。硒很容易使用和理解。谢谢@theideasmith。这是一个有趣的问题,应该用经过良好测试的DSL来解决——事实上确实如此。看看袋熊,felipecsl/Wombat·GitHub
# ./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]