首页 > 解决方案 > 没有收到来自 url 的响应?

问题描述

另一方面,如果我在 Firefox 中过去了 url,那么它没有url响应。requests.get提供url的是 json 文件的链接。我不知道发生了什么?这是我的代码

from urllib.request import urlopen,Request
import requests
import pprint
import json
import pandas as pd

url = "https://www.nseindia.com/api/option-chain-equities?symbol=ACC"

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"}

response = requests.get(url, headers=headers)
print(response.status_code)

##data_json = json.loads(response.read())
df = pd.read_json(response)
pprint.pprint(df['records'][1])

标签: pythonjsonpandaspython-requestsurllib

解决方案


本网站保护自己免受机器人攻击。有很多方法可以检测机器人,其中一些是:

  • 请求率
  • 禁用的 JavaScript
  • 空饼干
  • 不使用鼠标单击按钮
  • 等等

要启用 javascript 和 cookie,您可以使用selenium.

您要抓取的网站具有强大的机器人检测方法。我无法访问您共享的链接。但是当我第一次尝试网站主页和之后你的链接时,它显示了 json 文件。但这并不容易制作一个机器人。我尝试了 selenium 并通过移动鼠标单击了网站按钮,但它检测到我是机器人。所以我们可以断定该网站使用了cookies。您需要生成虚假 cookie 才能访问该网页。


推荐阅读