当我尝试抓取Taiwan Stock Exchange的实时股票信息时,我使用他们的API来访问所需的信息。发生了一件奇怪的事。
例如,我可以使用以下链接API link访问该信息,该链接将在浏览器上为我返回一个不错的json(类似于:。但它不能返回我的json程序。
我的代码如下
url = "http://mis.twse.com.tw/stock/api/getStockInfo.jsp?ex_ch=tse_t00.tw|otc_o00.tw|tse_1101.tw|tse_2330.tw&json=1&delay=0&_=1516681976742"
print url
def get_data(query_url):
headers = {'User-Agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:57.0) Gecko/20100101 Firefox/57.0",
'Accept-Language': 'en-US'
#'Accept-Language': 'zh-tw'
}
req = requests.session()
req.get('http://mis.twse.com.tw/stock/index.jsp', headers = headers)
#print req.cookies['JSESSIONID']
#print req.cookies.get_dict()
response = req.get(query_url, cookies = req.cookies.get_dict(), headers = headers)
return response.text#json.loads(response.text)
a = get_data(query_url = url)
它只会返回u' \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ n \ r \ n&n;'。
我的代码中有什么问题吗?或者根本无法使用请求模块访问此类网页?
还是其他任何建议?非常感谢!!
ps:他们的API格式为:http://mis.twse.com.tw/stock/api/getStockInfo.jsp?ex_ch=[tickers]&[time]
pps:我尝试了模块selenium及其webDriver。它工作但很慢。这就是我想使用请求的原因。
答案 0 :(得分:0)
如附图所示,文字是非英文的,因此可能是打印的ascii值。对结果使用utf-8编码,您会看到不同的结果。