Maison  >  Article  >  développement back-end  >  Exemple d'analyse simple sur la façon d'implémenter des images de robot en Python

Exemple d'analyse simple sur la façon d'implémenter des images de robot en Python

黄舟
黄舟original
2017-06-04 10:14:551725parcourir

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!

Déclaration:
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