J'utilise urlretrieve du module urllib.Urlretrieve et User-Agent? - Python
Je n'arrive pas à trouver comment ajouter une description User-Agent à mes demandes.
Est-ce possible avec urlretrieve? ou dois-je utiliser une autre méthode?
J'utilise urlretrieve du module urllib.Urlretrieve et User-Agent? - Python
Je n'arrive pas à trouver comment ajouter une description User-Agent à mes demandes.
Est-ce possible avec urlretrieve? ou dois-je utiliser une autre méthode?
Je ne pense pas que ce soit possible avec urlretrieve - au moins pas facilement. Je proposerais de créer un objet urllib2.Request et de lui passer les en-têtes requis. Voir
http://docs.python.org/library/urllib2.html#urllib2.urlopen
des exemples.
Vous pouvez utiliser des classes URLopener ou FancyURLopener. L'argument 'version' spécifie l'agent utilisateur de l'objet ouvreur.
opener = FancyURLopener({})
opener.version = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.69 Safari/537.36'
opener.retrieve('http://example.com', 'index.html')
D'abord, la version set:
urllib.URLopener.version = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0'
Puis:
filename, headers = urllib.urlretrieve(url)
Je sais que cette question avait été là depuis 7 ans. Et j'ai atteint ce problème en essayant de comprendre comment changer le User-Agent
tout en utilisant la fonction urlretrieve
.
Pour toute personne qui a atteint cette question par pas de chance, voici comment je l'ai fait:
# proxy = ProxyHandler({'http': 'http://192.168.1.31:8888'})
proxy = ProxyHandler({})
opener = build_opener(proxy)
opener.addheaders = [('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30')]
install_opener(opener)
result = urlretrieve(url=file_url, filename=file_name)
La raison pour laquelle j'ai ajouté procuration est de surveiller le trafic de Charles, et voici le trafic que je suis:
Pensez à corriger .version (trop petite pour être éditée) – emartel