2017-10-24 17 views
0

ウェブサイトからjsonファイルを取得しようとしています。私はBeautifulSoupライブラリを試しましたが、空でした。デベロッパーツールでJSONファイルを取得するリクエストを送信する方法

は空ではありませんでしたし、サンプルjQueryのコードがあります:

<p>You are seeing this message because this HTTPS site requires a &#39;Referer header&#39; to be sent by your Web browser, but none was sent. This header is required for security reasons, to ensure that your browser is not being hijacked by third parties.</p> 
    <p>If you have configured your browser to disable &#39;Referer&#39; headers, please re-enable them, at least for this site, or for HTTPS connections, or for &#39;same-origin&#39; requests.</p> 
` 

あなたが助けてくださいでした:

$('#domtableweek').dataTable({ 
     "processing": true, 
     "serverSide": true, 
     "bSort": false, 
     "bLengthChange": false, 
     "pageLength": 10, 
     ajax: { 
      url: '/data/mal-domains-data', 
      type: 'POST', 
      data: {'csrfmiddlewaretoken': 'yafh4aGjo0S6SeTci6qv2PzlcEuTW7E8', 'time':'7-Day'} 
     }, 
     "dataSource": '' 
    }); 

だから私は

import requests 

csrf = 'some_csrf_token' 
cookie = 'some_cookie_id' 
data = dict({'csrfmiddlewaretoken': 'yafh4aGjo0S6SeTci6qv2PzlcEuTW7E8', 'time':'7-Day'}) 
url = 'https://minotr.net/data/mal-domains' 
headers = {'Cookie':cookie} 

r = requests.post(url, data=data, headers=headers) 

print r.text 

結果は、このコードを試してみました私。

答えて

0

ここでは、「Referer」ヘッダーを設定する必要があります。

headers = {'Cookie':cookie, 'Referer':'https://google.com/'} 

この1

を試してみて、あなたは()メソッドを使用する必要が.json JSONを取得します。

r = requests.post(url, data=data, headers=headers).json() 
+0

とValueError(「いいえJSONオブジェクトをデコードすることはできなかった」) ValueErrorを送出:いいえJSONオブジェクトは –

+0

をデコードすることができそれはあなたがいないJSONと間違ってリンクになったことを意味します。また、リクエストを行うと403エラーが発生しますので、設定を確認して別のリファラーリンク(通常はあなたがリクエストしたページにアクセスするリンク)を設定してください。 – Snusmumr

関連する問題