0

私はurlを持っています。プログラムでアクセスしようとすると、バックエンド サーバーが失敗します (サーバーを実行していません)。

import requests
r = requests.get('http://www.courts.wa.gov/index.cfm?fa=controller.managefiles&filePath=Opinions&fileName=875146.pdf')
r.status_code  # 200
print r.content

コンテンツを見ると、エラー ページですが、ステータス コードは 200 です。リンクをクリックすると、ブラウザーで動作し、PDF が表示されます。コンテンツ。私のブラウザでは動作しますが、リクエストでは失敗します。

診断するために、ブラウザと Requests ライブラリの違いを排除しようとしています。これまでのところ:

  • Javascript を無効にしました
  • 無効化 (および削除) された Cookie
  • User-Agent をそれぞれで同じになるように設定します

しかし、何かを無効にしたために、リクエストで正しく機能したり、ブラウザーで失敗したりすることはできません。ブラウザマジックのより良いアイデアを持っている人が、これを診断して解決するのを手伝ってくれますか?

4

2 に答える 2

1

リクエストは Chrome で機能しますか? その場合、Web インスペクタを開き、リクエストを右クリックして curl コマンドとしてコピーできます。次に、すべてのヘッダー、パラメーター、およびリクエスト本文にアクセスできるようになります。これらをいじって、リクエスト ライブラリで発生している失敗を引き起こしている原因を確認できます。

于 2013-07-02T00:50:17.263 に答える