Cet article présente principalement les informations pertinentes sur la mise en œuvre simple de Python crawlerphoto Les amis dans le besoin peuvent se référer à
La mise en œuvre simple de. Image du robot d'exploration Python
Je parcoure souvent Zhihu, et parfois je souhaite enregistrer quelques photos de questions ensemble. D'où ce programme. Il s'agit d'un programme d'exploration d'images très simple qui ne peut explorer que la partie de l'image qui a été brossée. Comme je ne connais pas cette partie du contenu, je vais juste dire quelques mots et enregistrer le code sans trop expliquer. Si vous êtes intéressé, vous pouvez l'utiliser directement. Des tests personnels sont disponibles pour des sites Web tels que Zhihu.
L'article précédent expliquait comment ouvrir des images via des URL. Le but est d'abord de voir à quoi ressemblent les images explorées, puis de les filtrer et de les enregistrer.
La bibliothèque de requêtes est utilisée ici pour obtenir des informations sur la page. Il convient de noter que lors de l'obtention des informations sur la page, un en-têteer est nécessaire pour déguiser le programme en navigateur pour accéder au serveur, sinon Peut être rejeté par le serveur. Utilisez ensuite BeautifulSoup pour filtrer les informations excédentaires afin d'obtenir l'adresse de l'image. Après avoir pris l'image, filtrez quelques petites images telles que des avatars et des émoticônes en fonction de la taille de l'image. Enfin, vous avez plus de choix lors de l'ouverture ou de la sauvegarde d'images, notamment OpenCV, skimage, PIL, etc.
La procédure est la suivante :
# -*- 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"处理完成!"
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!