python - 具有多个输入的网络抓取并收集所需的总 margin

标签 python python-3.x pandas web-scraping request

我有一个网络链接:

url = "zerodha.com/margin-calculator/SPAN"

这里输入参数和示例值供引用,如下所述:

Exchange - NFO
Product - Options
Symbol - DHFL 27-JUN-19
Option Type - Calls
Strike Price - 120
Net Qty appears automatically as 1500, 

并使用SELL按钮,然后单击ADD按钮。

我想收取右端显示的所需总 margin (在上述情况下为 Rs 49,308)。

最佳答案

您可以只使用请求。如果观察网络,您可以看到它正在使用选定的负载发出 POST 请求。我就是这样做的:

from requests import Session

BASE_URL = 'https://zerodha.com/margin-calculator/SPAN'

payload = {'action': 'calculate',
            'exchange[]': 'NFO',
            'product[]': 'FUT',
            'scrip[]': 'DHFL19AUG',
            'option_type[]': 'CE',
            'strike_price[]':120, 
            'qty[]': 4000,
            'trade[]': 'sell'
}



session = Session()

res = session.post(BASE_URL, data=payload)

data = res.json()

print(data)

我从观察网络中获取了 URL 和 Payload。这是您将获得的 json 形式的数据。 enter image description here

chrome 和 python 中的结果 enter image description here

只需观察chrome或firefox如何发送和接收数据即可。并根据您的请求进行逆向工程。

关于python - 具有多个输入的网络抓取并收集所需的总 margin ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56591881/

相关文章:

python - 在 asyncio.Protocol.data_received 中调用协程

python - 如何在 python 列表中查找唯一元素? (不使用套装)

python - 高效地对 pandas 列的多个子集进行回归分析

python - 使用 Pandas 计算日期时间行平均值的最快方法

python - 将数据框的第三列放在下一行

python - 如何使用 OpenCV 的重映射功能?

python - 列表差异

python - 访问用括号定义的属性

python-3.x - 比较 keras tensorflow 后端模型训练的结果

python-3.x - 升级 ansible 以在 Controller 上使用 python3