如何在调用javascript函数的按钮后面下载数据?

如何在调用javascript函数的按钮后面下载数据?,javascript,python,html,web-scraping,Javascript,Python,Html,Web Scraping,我试图从网站上下载这些数据。 如何使用python解决这个问题?JavaScript函数下载CSV是gijgo.min.js的一部分。它调用getCSV,它遍历表中的字段并动态生成一个CSV文件 幸运的是,您不必处理CSV或从页面中删除任何内容。要获取所需数据,只需向浏览器在访问页面时请求的RESTful API发出HTTP get请求: def main(): import requests url = "https://www.nseindia.com/ap

我试图从网站上下载这些数据。


如何使用python解决这个问题?

JavaScript函数
下载CSV
gijgo.min.js
的一部分。它调用
getCSV
,它遍历表中的字段并动态生成一个CSV文件

幸运的是,您不必处理CSV或从页面中删除任何内容。要获取所需数据,只需向浏览器在访问页面时请求的RESTful API发出HTTP get请求:

def main():

    import requests

    url = "https://www.nseindia.com/api/live-analysis-oi-spurts-underlyings"

    headers = {
        "user-agent": "Mozilla/5.0"
    }

    response = requests.get(url, headers=headers)
    response.raise_for_status()

    data = response.json()["data"]

    print(f"There are {len(data)} items in total.")

    print(f"The first item is:\n{data[0]}")
    
    return 0


if __name__ == "__main__":
    import sys
    sys.exit(main())
输出:

There are 143 items in total.
The first item is:
{'symbol': 'MOTHERSUMI', 'latestOI': 7182, 'prevOI': 4674, 'changeInOI': 2508, 'avgInOI': 53.66, 'volume': 12519, 'futValue': 53892.6066, 'optValue': 3788085280, 'total': 55585.0344, 'premValue': 1692.4278, 'underlyingValue': 104}
>>> 

找到某个文件的最终下载链接的一种方法是打开web浏览器的调试器,并在查看调试器的“网络”选项卡时单击下载链接

通常,您会看到页面的javascript调用的请求与url、请求内容等相同


从这里,您只需复制javascript发送的请求。

请尝试使用[Ctrl+F]搜索文档中的“downloadCSV()”函数。也许在某个标签中,你可以找到CSV的下载链接。你是如何找到API的?我如何使用它下载所有其他数据?我们不需要知道API地址,比如你是如何得到的“”link@yash看看我在这里发布的答案: