Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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
Python 用“删除”删除Javascript;onclick";_Python_Screen Scraping - Fatal编程技术网

Python 用“删除”删除Javascript;onclick";

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,然后继续 因此,您可以模拟这些请求,打开“网络”选项卡,查看它是如

我在抓取以下url时遇到一些问题: 我正在将Python与Selenium结合使用,但要运行许多“onclick”javascript事件以获得最低级别的信息。有人知道如何实现自动化吗? 谢谢


你不需要硒这个网站,你需要耐心。让我解释一下你是怎么做到的

  • 单击X
    • Y打开,单击Y
      • Z打开,单击Z。
        • 继续
  • 这里发生的事情是,当您单击X时,会发出一个
    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()