2017-08-26 86 views
0

我想從使用urllib2的quandl中獲取數據。請檢查下面的代碼。https使用python獲取請求urllib2

import json 
from pymongo import MongoClient 
import urllib2 
import requests 
import ssl 
#import quandl 
codes = [100526]; 
for id in codes: 
    url = 'https://www.quandl.com.com//api/v3/datasets/AMFI/"+str(id)+".json?api_key=XXXXXXXX&start_date=2013-08-30' 
    req = urllib2.Request(url) 
    response = urllib2.urlopen(req) 
    data = response.read() 
    print data 

OR

for id in codes: 
    url = "https://www.quandl.com.com//api/v3/datasets/AMFI/"+str(id)+".json?api_key=XXXXXXXX&start_date=2013-08-30" 
    request = requests.get(url,verify=False) 
    print request 

我得到HTTPERROR例外404第一種情況。當我使用請求模塊時,即使在使用verify = false之後,我也會得到SSL錯誤。我正在瀏覽以前的帖子,但其中大部分都與HTTP請求有關。

感謝您的幫助。 J

回答

0

您好像在代碼的第一個版本中使用了錯誤的URL(.com.com而不是.com)以及不同的引號組合。改用以下,它應該工作:

import urllib2 
import requests 

codes = [100526] 

for id in codes: 
    url = "https://www.quandl.com//api/v3/datasets/AMFI/"+str(id)+".json?start_date=2013-08-30" 
    req = urllib2.Request(url) 
    response = urllib2.urlopen(req) 
    print response.read() 

for id in codes: 
    url = "https://www.quandl.com//api/v3/datasets/AMFI/"+str(id)+".json?start_date=2013-08-30" 
    response = requests.get(url,verify=False) 
    print response.text 

要禁用有關SSL證書的警告,使得使用requests請求之前使用the following code

from requests.packages.urllib3.exceptions import InsecureRequestWarning 
requests.packages.urllib3.disable_warnings(InsecureRequestWarning) 
+0

感謝您的答覆。我猜測.com導致錯誤。並確定我已經使用了'request = requests.get(url,cert =('C:\\ ssl \\ ca.crt','C:\\ ssl \\ ca.key')) jsonReq = request上傳.json()' – Jitesh

1

這對我很有用,但是您會收到有關SSL證書的警告,但您無需關心它。

import requests 
codes = [100526]; 
for id in codes: 
    url = "https://www.quandl.com.com//api/v3/datasets/AMFI/"+str(id)+".json?api_key=XXXXXXXX&start_date=2013-08-30" 
    request = requests.get(url, verify=False) 
    print request.text 

request.text有你的回覆數據。

相關問題