Módulo de solicitudes de Python, ¿cómo emitir múltiples solicitudes en el bucle for?

Me pregunto por qué cuando llamo al método requests.get () en consecuencia, así:

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) 

Obtuve el estado OK para todas las solicitudes, pero cuando lo hago en el bucle for, como:

 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 

Obtuve 400 (Error) para todas las solicitudes, excepto la última.

Información adicional: hay una pregunta relacionada sobre SO , donde se mencionan 2 formas de hacer frente a esta situación: espera, encabezados.
esperar no funciona en mi situación
y sobre los encabezados – No sé qué proporcionar allí.

Actualización: versión específica, que estoy tratando de implementar:

 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) 

Tienes nuevas líneas finales que debes quitar:

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

Funciona para el último ya que obviamente no tiene nueva línea al final de la última palabra en el archivo. "www.foo.com\n" no es lo mismo que "www.foo.com"

Codificación de datos POST resuelto problema para mí.

 cmd = urllib.quote(cmds[i]) 

Para mis testcases

  • No se requiere nueva línea
  • No requiere tiempo de sueño