Maison  >  Article  >  développement back-end  >  Explication détaillée de la méthode Python pour explorer les images Sogou à partir de pages Web

Explication détaillée de la méthode Python pour explorer les images Sogou à partir de pages Web

高洛峰
高洛峰original
2017-03-24 16:26:363594parcourir

Je ne m'attendais pas à ce que Python soit si puissant et fascinant. J'avais l'habitude de copier et coller les images une par une quand je les voyais. Maintenant, c'est mieux si vous apprenez Python, vous pouvez utiliser le programme pour enregistrer les images une par. un. L'article suivant vous présente principalement les informations pertinentes sur l'utilisation de Python3.6 pour explorer les images des pages Web d'images Sogou. Les amis dans le besoin peuvent s'y référer.

Préface

Ces derniers jours, j'ai étudié l'algorithme du robot d'exploration qui m'a toujours intéressé. Ici, je vais écrire certaines de mes expériences de ces derniers jours. Entrez le texte ci-dessous :

Nous utilisons ici sogou comme objet à explorer.

Nous entrons d'abord dans Sogou Pictures et entrons dans la catégorie fond d'écran (bien sûr, ce n'est qu'un exemple Q_Q), car si nous devons explorer certaines données d'un site Web, nous devons en avoir une compréhension préliminaire ...

Explication détaillée de la méthode Python pour explorer les images Sogou à partir de pages Web

Après avoir entré, ça y est, puis F12 pour entrer dans les options développeur j'utilise Chrome.

Cliquez avec le bouton droit sur l'image>>Vérifiez

Explication détaillée de la méthode Python pour explorer les images Sogou à partir de pages Web

Nous avons constaté que l'image src dont nous avons besoin se trouve sous la balise img, nous avons donc d'abord essayé de utilisez les requêtes Python pour extraire le composant image, puis obtenez le src de img, puis utilisez urllib.request.urlretrieve pour télécharger les images une par une, afin d'atteindre l'objectif d'obtenir des données par lots. L'idée est bonne. ce qui suit devrait indiquer au programme que l'URL à explorer est http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD, cette URL provient de la barre d'adresse après avoir entré la catégorie. Maintenant que nous comprenons l'adresse URL, commençons un bon moment de codage :

Lors de l'écriture de ce programme d'exploration, il est préférable de le déboguer étape par étape pour s'assurer que chaque étape de notre opération est correcte. les programmeurs devraient faire Habit. L'auteur ne sait pas si je suis programmeur. Analysons la page Web pointée par cette URL.

import requests
import urllib
from bs4 import BeautifulSoup
res = requests.get('http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD')
soup = BeautifulSoup(res.text,'html.parser')
print(soup.select('img'))

sortie :

Explication détaillée de la méthode Python pour explorer les images Sogou à partir de pages Web

Il s'avère que le contenu de sortie ne contient pas l'élément d'image souhaité, mais analyse uniquement l'image du logo , ce qui n'est évidemment pas ce que nous voulons. En d'autres termes, les informations d'image requises ne figurent pas dans l'URL http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD. Par conséquent, on considère que l'élément peut être dynamique. Les étudiants attentifs peuvent constater qu'en faisant glisser la molette de la souris vers le bas sur la page Web, l'image est actualisée dynamiquement. En d'autres termes, la page Web ne charge pas toutes les ressources en même temps. mais charger dynamiquement les ressources. Cela évite également que la page Web soit trop volumineuse et affecte la vitesse de chargement. L'exploration douloureuse commence ci-dessous. Nous voulons trouver les véritables URL de toutes les images. L'auteur est nouveau dans ce domaine et n'est pas très expérimenté dans cette recherche. Le dernier emplacement trouvé est F12>>Réseau>>XHR>>(Cliquez sur le fichier sous XHR)>>Aperçu.

Explication détaillée de la méthode Python pour explorer les images Sogou à partir de pages Web

J'ai trouvé que c'est un peu proche des éléments dont nous avons besoin. Cliquez sur all_items et constatez que les éléments suivants sont 0 1 2 3... un par un, ils semblent. être des éléments d’image. Essayez d'ouvrir une URL. J'ai trouvé que c'était vraiment l'adresse de la photo. Après avoir trouvé la cible. Cliquez sur En-têtes

sous XHR pour obtenir la deuxième ligne

URL de demande :

http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category= %E5%A3%81%E7%BA%B8&tag=%E5%85%A8%E9%83%A8&start=0&len=15&width=1536&height=864, essayez de supprimer certaines parties inutiles, l'astuce est de supprimer possible après la section , l'accès n'est pas affecté. Projeté par l'auteur. L'url finale obtenue : http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=%E5%A3%81%E7%BA%B8&tag=%E5%85%A8%E9%83%A8&start =0&len=15 Sens littéral, sachant que la catégorie peut être suivie d'une classification. start est l'indice de départ, len est la longueur, c'est-à-dire le nombre d'images. D'accord, commençons le bon moment de codage :

L'environnement de développement est Win7 Python 3.6 Lors de son exécution, Python doit installer les requêtes

Python3.6 nécessite CMD pour installer les requêtes :

.
pip install requests

L'auteur est également en train de déboguer et d'écrire ici, et le code final est publié ici :

import requests
import json
import urllib

def getSogouImag(category,length,path):
 n = length
 cate = category
 imgs = requests.get('http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category='+cate+'&tag=%E5%85%A8%E9%83%A8&start=0&len='+str(n))
 jd = json.loads(imgs.text)
 jd = jd['all_items']
 imgs_url = []
 for j in jd:
  imgs_url.append(j['bthumbUrl'])
 m = 0
 for img_url in imgs_url:
   print('***** '+str(m)+'.jpg *****'+' Downloading...')
   urllib.request.urlretrieve(img_url,path+str(m)+'.jpg')
   m = m + 1
 print('Download complete!')

getSogouImag('壁纸',2000,'d:/download/壁纸/')

Lorsque le programme a commencé à fonctionner, l'auteur était encore un peu excité. Venez le ressentir :

Explication détaillée de la méthode Python pour explorer les images Sogou à partir de pages Web

Explication détaillée de la méthode Python pour explorer les images Sogou à partir de pages Web

À ce stade, la description du processus de programmation du programme d'exploration est terminée. Dans l’ensemble, trouver l’URL où l’élément doit être exploré est la clé dans de nombreux aspects de l’exploration

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