Heim  >  Artikel  >  Backend-Entwicklung  >  Python crawlt JD-Produktkategorien und Links

Python crawlt JD-Produktkategorien und Links

高洛峰
高洛峰Original
2017-02-25 10:05:151924Durchsuche

Vorwort

Der Hauptwissenspunkt dieses Artikels ist die Verwendung von Pythons BeautifulSoup zur Durchführung einer mehrschichtigen Durchquerung.

Python crawlt JD-Produktkategorien und Links

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.

Python crawlt JD-Produktkategorien und Links

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:

Python crawlt JD-Produktkategorien und Links

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!

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