【发布时间】:2020-04-28 19:54:51
【问题描述】:
我有一个网页链接如下:
https://www.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp
我使用下面的代码来收集数据但得到错误:
requests.exceptions.ConnectionError: ('连接中止。', OSError("(10060, 'WSAETIMEDOUT')",))
我的代码:
from requests import Session
import lxml.html
expiry_list = []
try:
session = Session()
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36'}
session.headers.update(headers)
url = 'https://www1.nseindia.com/live_market/dynaContent/live_watch/option_chain/optionKeys.jsp'
params = {'symbolCode': 9999, 'symbol': 'BANKNIFTY', 'instrument': 'OPTIDX', 'date': '-', 'segmentLink': 17}
response = session.get(url, params=params)
soup = lxml.html.fromstring(response.text)
expiry_list = soup.xpath('//form[@id="ocForm"]//option/text()')
expiry_list.remove(expiry_list[0])
except Exception as error:
print("Error:", error)
print("Expiry_Date =", expiry_list)
它在我的本地机器上运行完美,但在 Amazon EC2 实例中出现错误需要更改任何设置以解决请求超时错误。
【问题讨论】:
-
您错过了
headers。response = requests.get(url,headers=headers).json()。该站点正在检查请求标头中的User-Agent -
哦,对不起。但是我已经添加了它(headers=headers),但在我的 Amazon EC2 实例中仍然出现同样的错误。
标签: python python-3.x pandas web-scraping request