In diesem Artikel werden hauptsächlich relevante Informationen zur einfachen Implementierung des PythonCrawlersBild vorgestellt. Freunde, die es benötigen, können sich auf
Die einfache Implementierung beziehen des Python-Crawler-Bildes
Ich stöbere oft in Zhihu und manchmal möchte ich einige Bilder von Fragen zusammen speichern. Daher dieses Programm. Dies ist ein sehr einfaches Bild-Crawler-Programm, das nur den Teil des Bildes crawlen kann, der ausgebürstet wurde. Da ich mit diesem Teil des Inhalts nicht vertraut bin, werde ich nur ein paar Worte sagen und den Code aufzeichnen, ohne zu viel zu erklären. Bei Interesse können Sie es direkt nutzen. Persönliche Tests sind auf Websites wie Zhihu verfügbar.
Im vorherigen Artikel wurde erklärt, wie man Bilder über URLs öffnet. Der Zweck besteht darin, zunächst zu sehen, wie die gecrawlten Bilder aussehen, und sie dann zu filtern und zu speichern.
Die Anforderungsbibliothek wird hier zum Abrufen von Seiteninformationen verwendet. Es ist zu beachten, dass beim Abrufen von Seiteninformationen ein Header benötigt wird, um das Programm als Browser für den Zugriff auf den Server zu tarnen. andernfalls kann es vom Server abgelehnt werden. Verwenden Sie dann BeautifulSoup, um überschüssige Informationen zu filtern und die Bildadresse zu erhalten. Nachdem Sie das Bild erhalten haben, filtern Sie einige kleine Bilder wie Avatare und Emoticons basierend auf der Bildgröße heraus. Schließlich haben Sie beim Öffnen oder Speichern von Bildern mehr Auswahlmöglichkeiten, einschließlich OpenCV, Skimage, PIL usw.
Der Ablauf ist wie folgt:
# -*- coding=utf-8 -*- import requests as req from bs4 import BeautifulSoup from PIL import Image from io import BytesIO import os from skimage import io url = "https://www.zhihu.com/question/37787176" headers = {'User-Agent' : 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Mobile Safari/537.36'} response = req.get(url,headers=headers) content = str(response.content) #print content soup = BeautifulSoup(content,'lxml') images = soup.find_all('img') print u"共有%d张图片" % len(images) if not os.path.exists("images"): os.mkdir("images") for i in range(len(images)): img = images[i] print u"正在处理第%d张图片..." % (i+1) img_src = img.get('src') if img_src.startswith("http"): ## use PIL ''' print img_src response = req.get(img_src,headers=headers) image = Image.open(BytesIO(response.content)) w,h = image.size print w,h img_path = "images/" + str(i+1) + ".jpg" if w>=500 and h>500: #image.show() image.save(img_path) ''' ## use OpenCV import numpy as np import urllib import cv2 resp = urllib.urlopen(img_src) image = np.asarray(bytearray(resp.read()), dtype="uint8") image = cv2.imdecode(image, cv2.IMREAD_COLOR) w,h = image.shape[:2] print w,h img_path = "images/" + str(i+1) + ".jpg" if w>=400 and h>400: cv2.imshow("Image", image) cv2.waitKey(3000) ##cv2.imwrite(img_path,image) ## use skimage ## image = io.imread(img_src) ## w,h = image.shape[:2] ## print w,h #io.imshow(image) #io.show() ## img_path = "images/" + str(i+1) + ".jpg" ## if w>=500 and h>500: ## image.show() ## image.save(img_path) ## io.imsave(img_path,image) print u"处理完成!"
Das obige ist der detaillierte Inhalt vonEinfache Beispielanalyse zur Implementierung von Crawler-Bildern in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!