Vorwort
Der Hauptwissenspunkt dieses Artikels ist die Verwendung von Pythons BeautifulSoup
zur Durchführung einer mehrschichtigen Durchquerung.
Wie im Bild gezeigt. Nur ein einfacher Hack, ohne die darin verborgenen Dinge zu durchforsten.
Beispielcode
from bs4 import BeautifulSoup as bs import requests headers = { "host": "www.jd.com", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36 Core/1.47.933.400 QQBrowser/9.4.8699.400", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" } session = requests.session() def get_url(): renspned = bs(session.get('http://www.jd.com/',headers = headers).text,'html.parser') for i in renspned.find("p", {"class": "dd-inner"}).find_all("a",{"target":"_blank"}): print(i.get_text(),':',i.get('href')) get_url()
Führen Sie diesen Code aus und erreichen Sie unser Ziel.
Lassen Sie uns diesen Code interpretieren.
Zuerst müssen wir die Homepage von JD.com besuchen.
Dann verwenden Sie BeautifulSoup
, um die besuchte Homepage zu analysieren.
Zu diesem Zeitpunkt müssen wir das Element finden, um das zu bekommen, was wir brauchen.
Durch F12
im Browser können wir etwas wie das Bild unten sehen:
Werfen wir einen Blick auf diesen Satzcode:
for i in renspned.find("p", {"class": "dd-inner"}).find_all("a",{"target":"_blank"})
Diese Codezeile entspricht vollständig unseren Anforderungen. Verwenden Sie zunächst die Methode find
, um das p von „class=“dd-inner
“ zu finden dann verwenden Sie find_all
für alle a-Tags unter diesem Tag
Schließlich möchte ich alle Produktkategorien und entsprechenden Links ausdrucken, also habe ich i.get_text()
und i.get('href')
verwendet. Die Methode wurde schließlich erhalten die Produktklassifizierung und der entsprechende Link.
Zusammenfassung
Es ist nicht sehr schwierig. Die Hauptsache ist, dass der Autor die Methode nicht richtig angewendet hat, weil er Anfänger ist . Es hat fast zwei Tage gedauert, bis es fertig war. Hier erzähle ich Ihnen auch, dass Sie die Methode find().find_all()
verwenden können, um eine mehrschichtige Durchquerung durchzuführen Links. Ich hoffe, es wird jedem helfen, Python zu lernen.
Für weitere Artikel zum Python-Crawling von JD.com folgen Sie bitte dem PHP Chinesische Website!