Python 用“删除”删除Javascript;onclick";
我在抓取以下url时遇到一些问题: 我正在将Python与Selenium结合使用,但要运行许多“onclick”javascript事件以获得最低级别的信息。有人知道如何实现自动化吗? 谢谢Python 用“删除”删除Javascript;onclick";,python,screen-scraping,Python,Screen Scraping,我在抓取以下url时遇到一些问题: 我正在将Python与Selenium结合使用,但要运行许多“onclick”javascript事件以获得最低级别的信息。有人知道如何实现自动化吗? 谢谢 你不需要硒这个网站,你需要耐心。让我解释一下你是怎么做到的 单击X Y打开,单击Y Z打开,单击Z。 继续 这里发生的事情是,当您单击X时,会发出一个AJAX请求以获取Y,在您单击Y之后,会发出另一个AJAX请求以获取Z,然后继续 因此,您可以模拟这些请求,打开“网络”选项卡,查看它是如
你不需要硒这个网站,你需要耐心。让我解释一下你是怎么做到的
- Y打开,单击Y
- Z打开,单击Z。
- 继续
- Z打开,单击Z。
AJAX
请求以获取Y
,在您单击Y
之后,会发出另一个AJAX
请求以获取Z
,然后继续
因此,您可以模拟这些请求,打开“网络”选项卡,查看它是如何处理这些请求的,然后在代码中生成相同的请求,然后得到响应,根据响应,执行下一个请求,循环将继续进行,直到到达树的最内层
这种方法没有UI,从技术上讲,更不友好,更难实现。但更有效的是,另一方面,您可以使用selenium
like选择可点击的元素
eleme = driver.find_elemnent_by_x('x')
elem.click()
它也会起作用
我还需要注意的是,有时候,链接并不
AJAX
,它们只是隐藏了信息,但信息就在源代码中。要知道您将在响应中收到什么,请在网站上右键单击并选择查看页面源代码
,注意这不同于检查元素
,这些链接仅扩展html,但信息已经存在,因此您无需单击,只需直接从表中获取即可。
eleme = driver.find_elemnent_by_x('x')
elem.click()