Maison > développement back-end > Tutoriel Python > Comment exemple de code de robot d'exploration en python

Comment exemple de code de robot d'exploration en python

coldplay.xixi
Libérer: 2020-08-11 13:58:52
original
9666 Les gens l'ont consulté

La méthode de l'exemple de code du robot d'exploration Python : obtenez d'abord les informations du navigateur et utilisez le code urlen pour générer les données de publication, puis installez pymysql et stockez les données dans MySQL.

Comment exemple de code de robot d'exploration en python

Exemple de méthode de code du robot d'exploration Python :

1, urllib et BeautifuluSoup

Obtenir les informations du navigateur

from urllib import request
req = request.urlopen("http://www.baidu.com")
print(req.read().decode("utf-8"))
Copier après la connexion

Simuler un vrai navigateur : porter l'en-tête user-Agent

(Le but est d'empêcher le serveur de penser qu'il s'agit d'un robot. Si ces informations du navigateur ne sont pas inclus, alors Une erreur peut être signalée)

req = request.Request(url) #此处url为某个网址
req.add_header(key,value)  #key即user-Agent,value即浏览器的版本信息
resp = request.urlopen(req)
print(resp.read().decode("utf-8"))
Copier après la connexion

Recommandations d'apprentissage associées : Tutoriel vidéo Python

Utilisez POST

pour importer une analyse sous la bibliothèque urllib

from urllib import parse
Copier après la connexion

Utilisez le code urlen pour générer des données de publication

postData = parse.urlencode([
    (key1,val1),
    (key2,val2),
    (keyn,valn)
])
Copier après la connexion

Utilisez post

request.urlopen(req,data=postData.encode("utf-8")) #使用postData发送post请求
resp.status  #得到请求状态
resp.reason #得到服务器的类型
Copier après la connexion

Exemple de code complet (prenez l'exploration du lien de la page d'accueil de Wikipédia comme exemple)

#-*- coding:utf-8 -*-
from bs4 import BeautifulSoup as bs
from urllib.request import urlopen 
import re
import ssl
#获取维基百科词条信息
ssl._create_default_https_context = ssl._create_unverified_context #全局取消证书验证
#请求URL,并把结果用utf-8编码
req = urlopen("https://en.wikipedia.org/wiki/Main page").read().decode("utf-8")
#使用beautifulsoup去解析
soup = bs(req,"html.parser")
# print(soup)
#获取所有href属性以“/wiki/Special”开头的a标签
urllist = soup.findAll("a",href=re.compile("^/wiki/Special"))
for url in urllist:
#去除以.jpg或.JPG结尾的链接
if not re.search("\.(jpg|JPG)$",url["href"]):
#get_test()输出标签下的所有内容,包括子标签的内容;
#string只输出一个内容,若该标签有子标签则输出“none
print(url.get_text()+"----->"+url["href"])
# print(url)
Copier après la connexion

2. Stocker les données dans MySQL

Installer pymysql

Installer via pip :

$ pip install pymysql
Copier après la connexion

ou installer le fichier :

$ python setup.py install
Copier après la connexion

Utilisation

#引入开发包
import pymysql.cursors
#获取数据库链接
connection = pymysql.connect(host="localhost",
user = 'root',
password = '123456',
db ='wikiurl',
charset = 'utf8mb4')
try:
#获取会话指针
with connection.cursor() as cursor
#创建sql语句
sql = "insert into `tableName`(`urlname`,`urlhref`) values(%s,%s)"
#执行SQL语句
cursor.execute(sql,(url.get_text(),"https://en.wikipedia.org"+url["href"]))
#提交
connection.commit()
finally:
#关闭
connection.close()
Copier après la connexion

3. Précautions pour les robots

Le nom complet du protocole Robots (protocole robot, également connu sous le nom de protocole robot) est le "Protocole d'exclusion des robots d'exploration du Web". Le site Web indique au moteur de recherche via le protocole Robots quelles pages peuvent être explorées et quelles pages ne peuvent pas être explorées. Généralement sous la page principale, comme https://en.wikipedia.org/robots.txt

Disallow:不允许访问
allow:允许访问
Copier après la connexion

Recommandations associées : Cours vidéo de programmation

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