2016-07-11 18 views
1

は、私は疑問に思うなぜ私はこのように、結果的にrequests.get()メソッドを呼び出したとき:Pythonリクエストモジュール、forループで複数のリクエストを発行する方法?

response = requests.get(url.format("set")) 
print(response.status_code) 
response = requests.get(url.format("map")) 
print(response.status_code) 
response = requests.get(url.format("list")) 
print(response.status_code) 
response = requests.get(url.format("vector")) 
print(response.status_code) 
response = requests.get(url.format("string")) 
print(response.status_code) 

私はすべての要求のためにOKのステータスを得たが、私は次のように、forループでそれを行うとき:

for word in fIn : 
     response = requests.get(url.format(word)) 
     if(response.status_code == 200): 
      print "OK" 
     else: 
      print(response.status_code) 
      print "Error" 
      print word 

最後のリクエスト以外のすべてのリクエストで400(エラー)が発生しました。

追加情報: related question on SOがあります。ここには、この状況に対処する2つの方法が記載されています。
私の状況では待ちません
とヘッダーについて - 私はそこに何を提供するのか分かりません。

更新: 特定のバージョン、私が実装しようとしていること:

from lxml import html 

import requests 

fOut = open("descriptions.txt","w") 

with open('dummyWords.txt') as fIn: 
    for word in fIn : 
     print word 
     response = requests.get(url.format(word)) 
     if(response.status_code == 200): 
      print "OK" 
     else: 
      print(response.status_code) 
      print(word) 
+3

リクエストには制限がありますか? – Tim

+0

@Tim私はレート制限を認識しています、私は彼らが持っているかどうかわかりません。しかし、forループを使わずに、手動でリクエストを入力することは私にとっては奇妙に思えます。セッションの新しいオブジェクトが作成され、新しいセッションが確立されるたびにforループ内にあるかもしれませんが、手動リクエストでは1つのセッションが使用されますか? –

+0

これは助けになりますか? http://stackoverflow.com/questions/31306501/python-requests-library-looping-requests-get – Bahrom

答えて

2

あなたは離れますがストリップに必要な改行を末尾にしている:それはとして最後の作品

with open('dummyWords.txt') as fIn: 
    for word in map(str.strip, fIn) : 

ファイル内の最後の単語の最後には改行がありません。 "www.foo.com\n"は同じではありません"www.foo.com"

+0

私は標準では最後の行の最後に改行があるべきだと思います。彼がそうしているかどうか、違う。 http://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline – Tim

+0

@Tim、自由にファイルを編集できます。できないことは改行を追加することです。彼らが働くことを期待してください。 –

+0

私のコメントは最後から2番目の文を指しています - 彼はそこに1つあるべきですが、明らかにそうではありません。 – Tim

関連する問題