requests请求返回数据为一个html,如何运行该html页面的js,并返回结果

    ...
    data_html = requests.get('https://download/', params=params, headers=headers).text
    etree_data = etree.HTML(data_html)
    print(etree_data)

第一步请求返回的结果是一个html代码,但是不会弹出页面,后台会由此自动获取到第二步请求的参数,紧接着进行第二步的请求:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="referrer" content="none">
        <title>index</title>
    </head>
</html>

第二步请求用到的参数:

:path: /Win%E7%89%88+2022.rar

这个参数是由第一步请求得到的,但是如何得到的呢?
(目的是:requests请求获取到path参数,但是第一步的响应html也看不到想要的内容,如何xpath)

如果是动态加载,二次加载多次加载的页面,最简单的方法就是使用selenium工具,驱动chrome浏览器加载完页面,再去获取html源码,然后在源码中解析你要的数据,因为这种方式等浏览器加载完数据才去爬取数据,中间管你是什么动态加载,建议尝试下,因为你要逆向解析js或者运行js还是挺麻烦的,
selenium的安装使用教程:
https://blog.csdn.net/AI19970205/article/details/120048773

你是要啥数据呢,xpath弄出来

img


运行以后结果是这样的,显示防盗链超出限额,所以你需要在你的headers里面补充一个防盗链,也就是正常请求此json的网页链接。可以在headers字典里面添加变量:

"Referer": url

如果还不能解决欢迎继续追问

你是python建议可以直接上selenium。相当于一个无头浏览器模拟访问,里面可以截取到网页信息,同时可以模仿用户点击按钮,触发js,可以尝试一下,搜搜文档不是很复杂。