Je suis en train d'explorer certaines pages Web et d'analyser certaines données, mais l'un des sites semble bloquer mes requêtes. La version du code utilisant Python 3 avec urllib.requests fonctionne bien. Mon problème est que j'ai besoin d'utiliser Python 2.7, et je ne peux pas obtenir de réponse en utilisant urllib2Comment puis-je recréer une urllib.requests dans Python 2.7?
Ces demandes ne devraient-elles pas être identiques?
Python version 3:
def fetch_title(url):
req = urllib.request.Request(
url,
data=None,
headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
}
)
html = urllib.request.urlopen(req).read().encode('unicode-escape').decode('ascii')
return html
Python version 2.7:
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [(
'User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
)]
response = opener.open('http://website.com')
print response.read()
je reçois une réponse des deux versions, mais je reçois la pleine page de contenu avec urllib.requests et je reçois une version bloquée du site avec la version urllib2 –