Maison > développement back-end > Tutoriel Python > Comment installer la bibliothèque urllib2 en Python

Comment installer la bibliothèque urllib2 en Python

步履不停
Libérer: 2019-07-29 09:43:45
original
13325 Les gens l'ont consulté

Comment installer la bibliothèque urllib2 en Python

urllib2 est un module fourni avec Python2.7 (pas besoin de télécharger, il suffit de l'importer et de l'utiliser).

Utilisation de base de la bibliothèque urllib2

L'exploration dite de page Web consiste à lire les ressources réseau spécifiées dans l'adresse URL à partir du flux réseau et à les enregistrer localement . Il existe de nombreuses bibliothèques en Python qui peuvent être utilisées pour explorer des pages Web. Apprenons d'abord urllib2.

urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用)
urllib2 官方文档:https://docs.python.org/2/library/urllib2.html
urllib2 源码:https://hg.python.org/cpython/file/2.7/Lib/urllib2.py
Copier après la connexion

urllib2 a été remplacé par urllib.request

urlopen

Commençons par un morceau de code :

# urllib2_urlopen.py
 
# 导入urllib2 库
import urllib2
 
# 向指定的url发送请求,并返回服务器响应的类文件对象
response = urllib2.urlopen("http://www.baidu.com")
 
# 类文件对象支持 文件对象的操作方法,如read()方法读取文件全部内容,返回字符串
html = response.read()
 
# 打印字符串
print html
Copier après la connexion

Exécutez le code python écrit et imprimons le résultat

Power@PowerMac ~$: python urllib2_urlopen.py
Copier après la connexion

En fait, si nous ouvrons la page d'accueil de Baidu sur le navigateur, faites un clic droit et sélectionnez "Afficher le code source", vous constaterez que c'est exactement la même chose que ce que nous vient d'être imprimé. En d'autres termes, les 4 lignes de code ci-dessus nous ont aidé à parcourir tout le code de la page d'accueil de Baidu.

Le code python correspondant à une requête d'url basique est vraiment très simple.

Requête

Dans notre premier exemple, le paramètre de urlopen() est une adresse url

Mais si vous devez effectuer des opérations plus complexes ; , comme l'ajout d'en-têtes HTTP, doit créer une instance de Request en tant que paramètre de urlopen(); et l'adresse URL à laquelle il faut accéder est utilisée comme paramètre de l'instance de Request.

Nous éditons urllib2_request.py

# urllib2_request.py
 
import urllib2
 
# url 作为Request()方法的参数,构造并返回一个Request对象
request = urllib2.Request("http://www.baidu.com")
 
# Request对象作为urlopen()方法的参数,发送给服务器并接收响应
response = urllib2.urlopen(request)
 
html = response.read()
 
print html
Copier après la connexion

Le résultat en cours d'exécution est exactement le même :

新建Request实例,除了必须要有 url 参数之外,还可以设置另外两个参数:
data(默认空):是伴随 url 提交的数据(比如要post的数据),同时 HTTP 请求将从 "GET"方式 改为 "POST"方式。
headers(默认空):是一个字典,包含了需要发送的HTTP报头的键值对。
这两个参数下面会说到。
Copier après la connexion

User-Agent

Mais ça C'est simple Utiliser urllib2 pour envoyer une requête à un site Web est en effet un peu abrupt. Tout comme chaque maison a une porte, il n'est évidemment pas très poli de faire irruption en tant que passant. De plus, certains sites n'aiment pas être visités par des programmes (visites non humaines) et peuvent refuser votre demande d'accès.

Mais si nous utilisons une identité légale pour demander les sites Web d'autres personnes, ils l'accepteront évidemment, nous devrions donc ajouter une identité à notre code, qui est ce qu'on appelle l'en-tête User-Agent.

Le navigateur est une identité reconnue et autorisée dans le monde Internet. Si nous voulons que notre programme d'exploration ressemble davantage à un utilisateur réel, notre première étape consiste à prétendre être un navigateur reconnu. Différents navigateurs auront des en-têtes User-Agent différents lors de l'envoi de requêtes. L'en-tête User-Agent par défaut de urllib2 est : Python-urllib/x.y (x et y sont les numéros de version majeure et mineure de Python, tels que Python-urllib/2.7)

#urllib2_useragent.py
 
import urllib2
 
url = "http://www.itcast.cn"
 
#IE 9.0 的 User-Agent,包含在 ua_header里
ua_header = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"} 
 
#  url 连同 headers,一起构造Request请求,这个请求将附带 IE9.0 浏览器的User-Agent
request = urllib2.Request(url, headers = ua_header)
 
# 向服务器发送这个请求
response = urllib2.urlopen(request)
 
html = response.read()
print html
Copier après la connexion

Ajouter plus d'informations sur l'en-tête

Ajoutez un en-tête spécifique à la requête HTTP pour construire un message de requête HTTP complet.

Vous pouvez ajouter/modifier un en-tête spécifique en appelant Request.add_header() ou afficher les en-têtes existants en appelant Request.get_header().

Ajouter un en-tête spécifique

# urllib2_headers.py
 
import urllib2
 
url = "http://www.itcast.cn"
 
#IE 9.0 的 User-Agent
header = {"User-Agent" : "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"} 
request = urllib2.Request(url, headers = header)
 
#也可以通过调用Request.add_header() 添加/修改一个特定的header
request.add_header("Connection", "keep-alive")
 
# 也可以通过调用Request.get_header()来查看header信息
# request.get_header(header_name="Connection")
 
response = urllib2.urlopen(req)
 
print response.code     #可以查看响应状态码
html = response.read()
 
print html
Copier après la connexion

Ajouter/modifier aléatoirement le User-Agent

# urllib2_add_headers.py
 
import urllib2
import random
 
url = "http://www.itcast.cn"
 
ua_list = [
    "Mozilla/5.0 (Windows NT 6.1; ) Apple.... ",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0)... ",
    "Mozilla/5.0 (Macintosh; U; PPC Mac OS X.... ",
    "Mozilla/5.0 (Macintosh; Intel Mac OS... "
]
 
user_agent = random.choice(ua_list)
 
request = urllib2.Request(url)
 
#也可以通过调用Request.add_header() 添加/修改一个特定的header
request.add_header("User-Agent", user_agent)
 
# 第一个字母大写,后面的全部小写
request.get_header("User-agent")
 
response = urllib2.urlopen(req)
 
html = response.read()
print html
Copier après la connexion

Recommandations de tutoriel associées : Tutoriel vidéo Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal