


Un article vous guidera à travers la bibliothèque urllib en Python (URL d'exploitation)
1. Manipulation des URL
urllib fournit une série de fonctions pour manipuler les URL. Classer le contenu associé.
2. Get()
urllib'srequest
request
模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应:
例如,对豆瓣的URLhttps://api.growingio.com/v2/22c937bbd8ebd703f2d8e9445f7dfd03/web/pv?stm=1593747087078
le module peut facilement capturer le contenu de l'URL, c'est-à-dire envoyer une requête GET à la page spécifiée, puis renvoyer une réponse HTTP : Par exemple, l'URL de Douban
https://api.growingio.com/v2/22c937bbd8ebd703f2d8e9445f7dfd03/web/pv?stm=1593747087078
🎜🎜explorez et renvoyez la réponse : 🎜🎜🎜🎜from urllib import request with request.urlopen('https://api.growingio.com/v2/22c937bbd8ebd703f2d8e9445f7dfd03/web/pv?stm=1593747087078') as f: data = f.read() print('Status:', f.status, f.reason) for k, v in f.getheaders(): print('%s: %s' % (k, v)) print('Data:', data.decode('utf-8'))
Vous pouvez voir les en-têtes et les données JSON de la réponse HTTP :
Si vous souhaitez simuler le navigateur envoyant une requête GET, vous devez utiliser < code style="box -sizing : border-box;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234 , 237) ; couleur d'arrière-plan : rgb (243, 244, 244) ; rayon de bordure : 3 px ; rembourrage à droite : 2 px ; rembourrage à gauche : 2 px ; taille de police : 0,9 em ; Request
对象,通过往Request
对象添加HTTP头,就可以把请求伪装成浏览器。例如,模拟iPhone 6去请求豆瓣首页:
from urllib import request req = request.Request('http://www.douban.com/') req.add_header('User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25') with request.urlopen(req) as f: print('Status:', f.status, f.reason) for k, v in f.getheaders(): print('%s: %s' % (k, v)) print('Data:', f.read().decode('utf-8'))
这样豆瓣会返回适合iPhone的移动版网页:
三、Post()
如果要以POST发送一个请求,只需要把参数 模拟一个微博登录,先读取登录的邮箱和口令,然后按照weibo.cn的登录页的格式以 如果登录成功,获得的响应如下: 如果登录失败,获得的响应如下: 如果还需要更复杂的控制,比如通过一个Proxy去访问网站,需要利用 如果代理成功返回网址的信息。 Si l'URL ou l'adresse proxy est erronée, revenez à l'interface ci-dessous. L'utilisation du langage Python peut aider tout le monde à mieux apprendre Python. La fonction fournie par urllib est d'utiliser des programmes pour effectuer diverses requêtes HTTP. Si vous souhaitez simuler un navigateur pour remplir une fonction spécifique, vous devez déguiser la demande en navigateur. La méthode de camouflage consiste d'abord à surveiller les requêtes envoyées par le navigateur, puis à les camoufler en fonction de l'en-tête de requête du navigateur. L'en-tête User-Agent est utilisé pour identifier le navigateur. data
objet, en allant dans Requête</ En ajoutant un en-tête HTTP à l'objet code></span><br/>, vous pouvez déguiser la requête en navigateur. Par exemple, simulez l'iPhone 6 pour demander la page d'accueil de Douban : </p>🎜🎜🎜<pre class='brush:php;toolbar:false;'>from urllib import request, parse
print(&#39;Login to weibo.cn...&#39;)
#电子邮件
email = input(&#39;Email: &#39;)
#密码
passwd = input(&#39;Password: &#39;)
#相关的参数
login_data = parse.urlencode([
(&#39;username&#39;, email),
(&#39;password&#39;, passwd),
(&#39;entry&#39;, &#39;mweibo&#39;),
(&#39;client_id&#39;, &#39;&#39;),
(&#39;savestate&#39;, &#39;1&#39;),
(&#39;ec&#39;, &#39;&#39;),
(&#39;pagerefer&#39;, &#39;https://passport.weibo.cn/signin/welcome?entry=mweibo&r=http%3A%2F%2Fm.weibo.cn%2F&#39;)
])
#网址请求
req = request.Request(&#39;https://passport.weibo.cn/sso/login&#39;)
req.add_header(&#39;Origin&#39;, &#39;https://passport.weibo.cn&#39;)
#构造User-Agent
req.add_header(&#39;User-Agent&#39;, &#39;Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25&#39;)
req.add_header(&#39;Referer&#39;, &#39;https://passport.weibo.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=http%3A%2F%2Fm.weibo.cn%2F&#39;)
with request.urlopen(req, data=login_data.encode(&#39;utf-8&#39;)) as f:
print(&#39;Status:&#39;, f.status, f.reason)
for k, v in f.getheaders():
print(&#39;%s: %s&#39; % (k, v))
print(&#39;Data:&#39;, f.read().decode(&#39;utf-8&#39;))</pre>🎜<p cid="n13" mdtype="paragraph" style="box-sizing: border-box;line-height: Heherit;orphans: 4 ;marge en haut : 0,8em ;marge en bas : 0,8em;espace blanc : pré-enveloppement;famille de polices : "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, "Segoe UI Emoji ", sans-serif;font-size: 16px;text-align: start;">🎜De cette façon, Douban renverra la version mobile de la page Web adaptée à l'iPhone : 🎜🎜🎜🎜<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/001/272/559/95e6e8965dd5ac2b6231e469adf6c889-4.png" class="lazy"/ alt="Un article vous guidera à travers la bibliothèque urllib en Python (URL d'exploitation)" >🎜🎜🎜🎜<h2 id="Trois-Post">🎜Trois, Post()🎜</h2>🎜<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/001/272/559/95e6e8965dd5ac2b6231e469adf6c889-4.png" class="lazy"/ alt="Un article vous guidera à travers la bibliothèque urllib en Python (URL d'exploitation)" >🎜<p cid="n16" mdtype="paragraph" style="max-width:90%"Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, "Segoe UI Emoji", sans-serif;font-size: 16px ;text-align: start;">🎜Si vous souhaitez envoyer une requête avec POST, il vous suffit de mettre les paramètres 🎜🎜<code style="box-sizing: border-box ;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243 , 244, 244);border-radius : 3px;padding- right : 2px;padding-left : 2px;font-size : 0.9em;">data
🎜🎜 est transmis en octets. 🎜🎜🎜username=xxx&password=xxx
的编码传入:from urllib import request, parse
print('Login to weibo.cn...')
#电子邮件
email = input('Email: ')
#密码
passwd = input('Password: ')
#相关的参数
login_data = parse.urlencode([
('username', email),
('password', passwd),
('entry', 'mweibo'),
('client_id', ''),
('savestate', '1'),
('ec', ''),
('pagerefer', 'https://passport.weibo.cn/signin/welcome?entry=mweibo&r=http%3A%2F%2Fm.weibo.cn%2F')
])
#网址请求
req = request.Request('https://passport.weibo.cn/sso/login')
req.add_header('Origin', 'https://passport.weibo.cn')
#构造User-Agent
req.add_header('User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
req.add_header('Referer', 'https://passport.weibo.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=http%3A%2F%2Fm.weibo.cn%2F')
with request.urlopen(req, data=login_data.encode('utf-8')) as f:
print('Status:', f.status, f.reason)
for k, v in f.getheaders():
print('%s: %s' % (k, v))
print('Data:', f.read().decode('utf-8'))
四、Handler
ProxyHandler
来处理,示例代码如下:import urllib.request
# 构建了两个代理Handler,一个有代理IP,一个没有代理IP
httpproxy_handler = urllib.request.ProxyHandler({"https": "27.191.234.69:9999"})
nullproxy_handler = urllib.request.ProxyHandler({})
# 定义一个代理开关
proxySwitch = True
# 通过 urllib.request.build_opener()方法使用这些代理Handler对象,创建自定义opener对象
# 根据代理开关是否打开,使用不同的代理模式
if proxySwitch:
opener = urllib.request.build_opener(httpproxy_handler)
else:
opener = urllib.request.build_opener(nullproxy_handler)
request = urllib.request.Request("http://www.baidu.com/")
# 1. 如果这么写,只有使用opener.open()方法发送请求才使用自定义的代理,而urlopen()则不使用自定义代理。
response = opener.open(request)
# 2. 如果这么写,就是将opener应用到全局,之后所有的,不管是opener.open()还是urlopen() 发送请求,都将使用自定义代理。
# urllib.request.install_opener(opener)
# response = urllib.request.urlopen(request)
# 获取服务器响应内容
html = response.read().decode("utf-8")
# 打印结果
print(html)
5. Résumé
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds











Pour réaliser la correction d'erreur de texte et l'optimisation de la syntaxe avec l'IA, vous devez suivre les étapes suivantes: 1. Sélectionnez un modèle ou une API d'IA appropriée, tels que Baidu, Tencent API ou bibliothèque NLP open source; 2. Appelez l'API via Curl ou Guzzle de PHP et traitez les résultats de retour; 3. Afficher les informations de correction d'erreur dans l'application et permettre aux utilisateurs de choisir d'adopter l'adoption; 4. Utilisez PHP-L et PHP_CODESNIFFER pour la détection de syntaxe et l'optimisation du code; 5. Collectez en continu les commentaires et mettez à jour le modèle ou les règles pour améliorer l'effet. Lorsque vous choisissez AIAPI, concentrez-vous sur l'évaluation de la précision, de la vitesse de réponse, du prix et du support pour PHP. L'optimisation du code doit suivre les spécifications du PSR, utiliser le cache raisonnablement, éviter les requêtes circulaires, revoir le code régulièrement et utiliser x

Cet article a sélectionné plusieurs sites Web de projet "finis" Python et des portails de ressources d'apprentissage "Blockbuster" de haut niveau pour vous. Que vous recherchiez l'inspiration de développement, l'observation et l'apprentissage du code source au niveau de la maîtrise ou que vous amélioriez systématiquement vos capacités pratiques, ces plateformes ne sont pas manquées et peuvent vous aider à devenir un maître Python rapidement.

L'entrée vocale de l'utilisateur est capturée et envoyée au backend PHP via l'API MediaRecorder du JavaScript frontal; 2. PHP enregistre l'audio en tant que fichier temporaire et appelle STTAPI (tel que Google ou Baidu Voice Recognition) pour le convertir en texte; 3. PHP envoie le texte à un service d'IA (comme Openaigpt) pour obtenir une réponse intelligente; 4. PHP appelle ensuite TTSAPI (comme Baidu ou Google Voice Synthesis) pour convertir la réponse en fichier vocal; 5. PHP diffuse le fichier vocal vers l'avant pour jouer, terminant l'interaction. L'ensemble du processus est dominé par PHP pour assurer une connexion transparente entre toutes les liens.

Pour commencer avec Quantum Machine Learning (QML), l'outil préféré est Python et des bibliothèques telles que Pennylane, Qiskit, Tensorflowquantum ou Pytorchquantum doivent être installées; Familiarisez-vous ensuite avec le processus en exécutant des exemples, tels que l'utilisation de Pennylane pour construire un réseau neuronal quantique; Ensuite, implémentez le modèle en fonction des étapes de la préparation des ensembles de données, du codage des données, de la construction de circuits quantiques paramétriques, de la formation Classic Optimizer, etc.; Dans le combat réel, vous devez éviter de poursuivre des modèles complexes depuis le début, en faisant attention aux limitations matérielles, en adoptant des structures de modèles hybrides et en se référant continuellement aux derniers documents et documents officiels à suivre le développement.

Pour collecter les données de comportement des utilisateurs, vous devez enregistrer la navigation, la recherche, l'achat et d'autres informations dans la base de données via PHP et les nettoyer et les analyser pour explorer les préférences d'intérêt; 2. La sélection des algorithmes de recommandation doit être déterminée sur la base des caractéristiques des données: en fonction du contenu, du filtrage collaboratif, des règles ou des recommandations mitigées; 3. Le filtrage collaboratif peut être mis en œuvre en PHP pour calculer la similitude du cosinus des utilisateurs, sélectionner K voisins les plus proches, les scores de prédiction pondérés et recommander des produits à haut score; 4. L'évaluation des performances utilise la précision, le rappel, la valeur F1 et le CTR, le taux de conversion et vérifier l'effet par le biais de tests A / B; 5. Les problèmes de démarrage à froid peuvent être atténués par des attributs de produits, des informations d'enregistrement des utilisateurs, des recommandations populaires et des évaluations d'experts; 6. Les méthodes d'optimisation des performances comprennent les résultats de recommandation en cache, le traitement asynchrone, l'informatique distribuée et l'optimisation des requêtes SQL, améliorant ainsi l'efficacité des recommandations et l'expérience utilisateur.

Dans Python, les points suivants doivent être notés lors de la fusion des chaînes à l'aide de la méthode join (): 1. Utilisez la méthode str.join (), la chaîne précédente est utilisée comme liaison lors de l'appel, et l'objet itérable dans les supports contient la chaîne à connecter; 2. Assurez-vous que les éléments de la liste sont tous des chaînes, et s'ils contiennent des types de cordes, ils doivent être convertis en premier; 3. Lors du traitement des listes imbriquées, vous devez aplatir la structure avant de vous connecter.

Pour maîtriser Python Web Crawlers, vous devez saisir trois étapes de base: 1. Utilisez les demandes pour lancer une demande, obtenir du contenu de la page Web via la méthode GET, faire attention à la définition d'en-têtes, gérer les exceptions et se conformer à robots.txt; 2. Utilisez BeautifulSoup ou XPath pour extraire les données. Le premier convient à l'analyse simple, tandis que le second est plus flexible et adapté aux structures complexes; 3. Utilisez du sélénium pour simuler les opérations du navigateur pour le contenu de chargement dynamique. Bien que la vitesse soit lente, elle peut faire face à des pages complexes. Vous pouvez également essayer de trouver une interface API de site Web pour améliorer l'efficacité.

Il existe trois méthodes courantes pour la déduplication dans Python. 1. Utilisez Set Deduplication: il convient aux situations où vous ne vous souciez pas de la commande et est implémentée via la liste (set (my_list)). L'avantage est qu'il est simple et rapide, et l'inconvénient est de perturber l'ordre; 2. Jugez manuellement la déduplication: en traversant la liste originale et en déterminant si les éléments existent déjà dans la nouvelle liste, les éléments qui apparaissent pour la première fois sont conservés, ce qui convient aux scénarios où l'ordre doit être maintenu; 3. Dict.fromKeys () Deduplication: Prise en charge de Python 3.7, implémentée via List (Dict.Fromkeys (my_list)), qui maintient à la fois l'ordre et la méthode d'écriture est concise. Il est recommandé d'utiliser le python moderne. Les notes comprennent d'abord la conversion de la structure lorsqu'ils traitent d'éléments non hashable. Il est recommandé d'utiliser de grands ensembles de données.
