web-dev-qa-db-fra.com

Python 3 - Ajouter des en-têtes personnalisés à la demande urllib.request

Dans Python, le code suivant obtient la source HTML d'une page Web.

import urllib.request
url = "https://docs.python.org/3.4/howto/urllib2.html"
response = urllib.request.urlopen(url)

response.read()

Comment puis-je ajouter l'en-tête personnalisé suivant à la demande lorsque j'utilise urllib.request?

headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)' }
6
rovyko

Les en-têtes de demande peuvent être personnalisés en créant d'abord un objet de demande, puis en le fournissant à urlopen.

import urllib.request
url = "https://docs.python.org/3.4/howto/urllib2.html"
hdr = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)' }

req = urllib.request.Request(url, headers=hdr)
response = urllib.request.urlopen(req)
response.read()

Source: Documentation Python 3.4

15
dexgecko
import urllib.request

opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
urllib.request.install_opener(opener)
response = urllib.request.urlopen("url")
response.read()

Si vous souhaitez en savoir plus sur les détails, vous pouvez vous référer à la documentation python: https://docs.python.org/3/library/urllib.request.html =

3
Lost Crotchet