2016-11-23 22 views
0

WebサイトにログインしてメッセージをダウンロードするPythonスクリプトを作成しようとしています。私は "要求"ライブラリを使用しており、セッションに成功してログインすることができます。PythonリクエストがAjaxと異なる結果を返すのはなぜですか?

ウェブサイトは、メッセージページがロードされた後に実際のメッセージクライアント側をダウンロードするためにjs/Ajaxを使用し、ページ分割を使用してメッセージの無限のリストに影響します。

メッセージページのURLはhttps://website.com/messagesの形式です。私は(私がLOGGEDINした後)のようなpythonで同じURLにアクセスしようとすると

$.ajax({ 
     url: '/messages?mailbox=' + mailbox + optional params 
    }).done(function(data) { 
     urlLazyLoading = data.next_page_url; 
     $.each(data, function(i, v) { 
      //from this point on, data for each message can be 
      //accessed using the v object as such: 
      //v.sender, v.date, v.last_message, etc 
      //and the <ul> element is populated with '<li>'s 

:しかし、そのページには、このようなmesssagesをretrives Ajax呼び出しが含まれてい

session.get('https://website.com/messages?mailbox=inbox') 

代わりにメッセージデータでjson応答を取得すると、私は同じ/元のメッセージページを取得します。

上記のコードでajaxに渡される唯一のパラメータはurlなので、defultでは単純なGETリクエストを行うだけで済みます。これは私がやっていることです。

コードajaxの他の部分がデフォルトのPOSTに設定されている、またはデフォルト以外の設定がある可能性はありますか?

または何らかの形でリクエストがajaxから来ていることとセッションから他のリクエストが来ていることを検出しているサーバーですか?おそらくuser-agentを使用していますか?

答えて

0

ありがとうございました!

{ 'X-要求-WITH': 'のXMLHttpRequest'}

のAjaxは、デフォルトでは、ヘッダ値を送信Iを添加

その

headers = {'X-Requested-With': 'XMLHttpRequest'} 
    r = s.get("https://website.com/messages?mailbox=inbox",headers=headers) 
及びビオラ
関連する問題