Heim > Artikel > Backend-Entwicklung > So erstellen Sie ein Beispiel für Crawler-Code in Python
So verwenden Sie das Python-Crawler-Codebeispiel: Rufen Sie zuerst die Browserinformationen ab und verwenden Sie den URL-Code, um Post-Daten zu generieren. Installieren Sie dann pymysql und speichern Sie die Daten in MySQL.
Methoden für Python-Crawler-Codebeispiele:
1, urllib und BeautifulfuSoup
Browserinformationen abrufen
from urllib import request req = request.urlopen("http://www.baidu.com") print(req.read().decode("utf-8"))
Simulieren Sie einen echten Browser: Carry user-Agent. header
(der Zweck ist es nicht Lassen Sie den Server davon ausgehen, dass es sich um einen Crawler handelt. Wenn diese Browserinformationen nicht enthalten sind, wird möglicherweise ein Fehler gemeldet
req = request.Request(url) #此处url为某个网址 req.add_header(key,value) #key即user-Agent,value即浏览器的版本信息 resp = request.urlopen(req) print(resp.read().decode("utf-8"))
Verwenden Sie den URL-Code, um Beitragsdaten zu generierenfrom urllib import parseVerwenden Sie den BeitragpostData = parse.urlencode([ (key1,val1), (key2,val2), (keyn,valn) ])Vollständiges Codebeispiel (nehmen Sie den Crawling-Wikipedia-Homepage-Link als Beispiel)
request.urlopen(req,data=postData.encode("utf-8")) #使用postData发送post请求 resp.status #得到请求状态 resp.reason #得到服务器的类型2. Speichern Sie Daten in MySQL
Installieren Sie pymysql
Installation über Pip :
#-*- 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)
oder über die Installationsdatei:
$ pip install pymysql
Verwenden von$ python setup.py install
Robots-Protokoll (Roboterprotokoll, auch Crawler-Protokoll genannt), der vollständige Name lautet „Web-Crawler-Ausschlussprotokoll“. Die Website teilt der Suchmaschine mit, welche Seiten durch den Robots-Protokollabruf gecrawlt werden können, welche Seiten nicht abgerufen werden können. Im Allgemeinen unter der Hauptseite, z. B. https://en.wikipedia.org/robots.txt
#引入开发包 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()Verwandte Empfehlungen:
Programmiervideokurs
Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein Beispiel für Crawler-Code in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!