Maison  >  Article  >  développement back-end  >  Expliquez l'exemple de code d'écriture du robot d'exploration Python pour capturer des images GIF sur les bandes dessinées Rampage

Expliquez l'exemple de code d'écriture du robot d'exploration Python pour capturer des images GIF sur les bandes dessinées Rampage

高洛峰
高洛峰original
2017-03-10 13:53:082486parcourir

Cet article explique comment écrire un exemple de code pour le robot d'exploration Python pour capturer des images GIF sur les bandes dessinées Rampage. L'exemple de code est Python3, qui utilise le module urllib, le module request et le module BeautifulSoup. Les amis dans le besoin peuvent se référer à cet article. 🎜>

Le robot d'exploration que je souhaite présenter consiste à récupérer les images GIF intéressantes de la bande dessinée Rampage pour une visualisation hors ligne. Le robot a été développé en python3.3, principalement en utilisant les modules urllib, request et BeautifulSoup.

Le module urllib fournit une interface de haut niveau pour obtenir des données du World Wide Web Lorsque nous utilisons urlopen() pour ouvrir une URL, cela équivaut à utiliser l'open() intégré de Python pour l'ouvrir. un fichier. Mais la différence est que le premier reçoit une URL en paramètre, et il n'y a aucun moyen d'effectuer une opération de recherche sur le flux de fichiers ouverts (d'un point de vue de bas niveau, car il s'agit en fait d'un socket, il est naturel qu'il y ait aucun moyen d'effectuer une opération de recherche), tandis que cette dernière Ce qui est reçu est un nom de fichier local.

Le module BeautifulSoup de Python peut vous aider à analyser le HTML et le XML

Tout d'abord, vous écrivez généralement un robot d'exploration Web, ce qui signifie récupérer le code source HTML et les autres contenus de la page Web, puis analyser et. extraire le contenu correspondant.
Ce genre de travail d'analyse de contenu HTML, si vous utilisez simplement le module re d'expression régulière ordinaire pour faire correspondre petit à petit, c'est fondamentalement suffisant pour analyser des pages Web avec un contenu plus simple.
Mais si vous avez besoin d'analyser du HTML avec une lourde charge de travail et un contenu compliqué, vous trouverez cela impossible ou difficile à implémenter à l'aide du module re.
Si vous utilisez le module beautifulsoup pour vous aider à analyser le code source html, vous constaterez que les choses deviennent si simples, ce qui améliore considérablement l'efficacité de l'analyse du code source html.
Remarque : BeautifulSoup est une bibliothèque tierce, j'utilise bs4. urllib2 est affecté à urllib.request dans python3. Le texte original du document est le suivant.
Remarque : le module urllib2 a été divisé en plusieurs modules dans Python 3 nommés urllib.request et urllib.error.
Le code source du robot est le suivant

# -*- coding: utf-8 -*-

import urllib.request
import bs4,os

page_sum = 1 #设置下载页数

path = os.getcwd()
path = os.path.join(path,'暴走GIF')
if not os.path.exists(path):
  os.mkdir(path)                 #创建文件夹

url = "http://baozoumanhua.com/gif/year"   #url地址
headers = {                     #伪装浏览器
  'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)'
         ' Chrome/32.0.1700.76 Safari/537.36'
}

for count in range(page_sum):
  req = urllib.request.Request(
    url = url+str(count+1),
    headers = headers
  )
  print(req.full_url)
  content = urllib.request.urlopen(req).read()

  soup = bs4.BeautifulSoup(content)          # BeautifulSoup
  img_content = soup.findAll('img',attrs={'style':'width:460px'})

  url_list = [img['src'] for img in img_content]   #列表推导 url
  title_list = [img['alt'] for img in img_content]  #图片名称

  for i in range(url_list.__len__()) :
    imgurl = url_list[i]
    filename = path + os.sep +title_list[i] + ".gif"
    print(filename+":"+imgurl)             #打印下载信息
    urllib.request.urlretrieve(imgurl,filename)    #下载图片

Sur la ligne 15, vous pouvez modifier le nombre de pages téléchargées. Enregistrez ce fichier sous baozougif.py Après avoir exécuté la commande python baozougif.py, un dossier de "Rampage GIF" sera généré dans. le même répertoire. Toutes les images seront automatiquement téléchargées dans ce répertoire.

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