Solution:
La raison pour laquelle “le chien” renvoie une erreur 400 est que vous n’échappez pas la chaîne pour une URL.
Si tu fais ça:
import urllib, urllib2
quoted_query = urllib.quote(query)
host="http://www.bing.com/search?q=%s&go=&qs=n&sk=&sc=8-13&first=%s" % (quoted_query, page)
req = urllib2.Request(host)
req.add_header('User-Agent', User_Agent)
response = urllib2.urlopen(req)
Ça va marcher.
Cependant, je vous suggère fortement d’utiliser des requêtes au lieu d’utiliser urllib/urllib2/httplib. C’est beaucoup plus facile et il gérera tout cela pour vous.
C’est le même code avec les requêtes python :
import requests
results = requests.get("http://www.bing.com/search",
params={'q': query, 'first': page},
headers={'User-Agent': user_agent})
Vous devez utiliser urllib.quote()
sur votre variable ‘requête’ :
query = urllib.quote(query)
host="http://www.bing.com/search?q=%s&go=&qs=n&sk=&sc=8-13&first=%s" % (query, page)
Cela fait l’URL nécessaire pour convertir l’espace dans big dog
à big%20dog
.
vous devez utiliser urllib.quote