Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten

Detaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten

高洛峰
高洛峰Original
2017-03-24 16:26:363539Durchsuche

Ich hätte nicht erwartet, dass Python so leistungsfähig und faszinierend ist. Als ich sie sah, ist es jetzt besser, das Programm zum Speichern von Bildern zu verwenden eins. Der folgende Artikel führt Sie hauptsächlich in die relevanten Informationen zur Verwendung von Python3.6 zum Crawlen von Bildern von Sogou-Bildwebseiten ein. Freunde in Not können darauf verweisen.

Vorwort

In den letzten Tagen habe ich den Crawler-Algorithmus studiert, auf den ich schon immer neugierig war. Hier schreibe ich einige meiner Erlebnisse der letzten Tage auf. Geben Sie den folgenden Text ein:

Wir verwenden hier Sogou als Crawling-Objekt.

Zuerst geben wir Sogou Pictures ein und geben die Hintergrundbildkategorie ein (natürlich ist es nur ein Beispiel Q_Q), denn wenn wir bestimmte Website-Daten crawlen müssen, müssen wir ein vorläufiges Verständnis davon haben ...

Detaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten

Nach der Eingabe ist es soweit, dann F12 zur Eingabe der Entwickleroptionen. Der Autor verwendet Chrome.

Rechtsklick auf das Bild>>Überprüfen

Detaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten

Wir haben festgestellt, dass sich die von uns benötigte Bildquelle unter dem img-Tag befindet, also haben wir es zuerst versucht Verwenden Sie Python-Anfragen, um die Bildkomponente zu extrahieren, rufen Sie dann die Quelle von img ab und laden Sie dann die Bilder einzeln herunter, um den Zweck des stapelweisen Abrufens zu erreichen Im Folgenden sollte dem Programm mitgeteilt werden, dass die zu crawlende URL http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD lautet. Diese URL stammt aus der Adressleiste nach Eingabe der Kategorie. Nachdem wir nun die URL-Adresse verstanden haben, beginnen wir eine glückliche Programmierzeit:

Wenn Sie dieses Crawler-Programm schreiben, ist es am besten, es Schritt für Schritt zu debuggen, um sicherzustellen, dass jeder Schritt unserer Operation korrekt ist Programmierer sollten Gewohnheit machen. Der Autor weiß nicht, ob ich Programmierer bin. Lassen Sie uns die Webseite analysieren, auf die diese URL verweist.

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'))

Ausgabe:

Detaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten

Es wurde festgestellt, dass der Ausgabeinhalt nicht das gewünschte Bildelement enthält, sondern nur das Bild des Logos analysiert , was offensichtlich nicht das ist, was wir wollen. Mit anderen Worten: Die erforderlichen Bildinformationen befinden sich nicht in der URL http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD. Daher wird davon ausgegangen, dass das Element möglicherweise dynamisch ist, wenn das Mausrad auf der Webseite nach unten bewegt wird. Mit anderen Worten: Die Webseite lädt nicht alle Ressourcen auf einmal. aber Ressourcen dynamisch laden. Dadurch wird auch verhindert, dass die Webseite zu aufgebläht wird und die Ladegeschwindigkeit beeinträchtigt wird. Die mühsame Erkundung beginnt unten. Wir möchten die echten URLs aller Bilder finden. Der Autor ist neu in diesem Bereich und hat nicht viel Erfahrung darin, sie zu finden. Der zuletzt gefundene Speicherort ist F12>>Netzwerk>>XHR>>(Klicken Sie auf die Datei unter XHR)>>Vorschau.

Detaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten

Ich habe festgestellt, dass es den Elementen, die wir benötigen, etwas nahe kommt. Klicken Sie auf „all_items“ und stellen Sie fest, dass die folgenden Elemente 0 1 2 3 sind ... eins nach dem anderen, wie sie scheinen Bildelemente sein. Versuchen Sie, eine URL zu öffnen. Ich fand heraus, dass es sich tatsächlich um die Adresse des Bildes handelte. Nachdem das Ziel gefunden wurde. Klicken Sie unter XHR auf „Kopfzeilen“

, um die zweite Zeile zu erhalten

Anfrage-URL:

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, versuchen Sie, einige unnötige Teile zu entfernen. Der Trick besteht darin, mögliche Teile nach dem Abschnitt zu löschen , der Zugriff ist nicht beeinträchtigt. Vom Autor gescreent. Die endgültige URL lautet: 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 Wörtliche Bedeutung, wissend, dass der Kategorie eine Klassifizierung folgen kann. start ist der Startindex, len ist die Länge, also die Anzahl der Bilder. Okay, fangen wir mit der fröhlichen Codierungszeit an:

Die Entwicklungsumgebung ist Win7 Python 3.6. Python benötigt beim Ausführen Installationsanforderungen

Python 3.6 erfordert CMD, um Anforderungen zu installieren:

pip install requests

Der Autor debuggt und schreibt hier auch, und der endgültige Code wird hier gepostet:

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/壁纸/')

Als das Programm zu laufen begann, war der Autor noch ein wenig aufgeregt. Kommen Sie und spüren Sie es:

Detaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten

Detaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten

An diesem Punkt ist die Beschreibung des Programmiervorgangs des Crawler-Programms abgeschlossen. Insgesamt ist das Finden der URL, unter der das Element gecrawlt werden muss, der Schlüssel für viele Aspekte des Crawlings

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Python-Methode zum Crawlen von Sogou-Bildern von Webseiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn