Aidemy 2020/9/30
Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur AI-spezialisierten Schule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dies ist der zweite Beitrag zum Schaben. Freut mich, dich kennenzulernen.
Was diesmal zu lernen ・ Schabemethode (Informationen zum vorbereitenden Kriechen finden Sie unter Schaben 1) ・ Mehrere Seiten verschrotten
・ (Überprüfen) Beim Scraping wird eine Webseite erfasst und die erforderlichen Daten daraus extrahiert. -Es gibt zwei Arten von Scraping-Methoden: "regulärer Ausdruck (Re-Modul)" oder "Bibliothek eines Drittanbieters verwenden", diesmal jedoch eine wichtige Methode __ "Bibliothek eines Drittanbieters verwenden" "Das Scraping erfolgt nach der __- Methode.
-XML ist eine __markup-Sprache __, die direkt dieselben Webseiten wie HTML erstellt. Es ist erweiterbarer als HTML. -In HTML und XML gibt es Text, der von etwas wie ** \
#Importieren Sie Anfragen zum Crawlen und Schöne Suppe zum Kratzen
from bs4 import BeautifulSoup
import requests
#URL abrufen
url=requests.get("https://www.google.co.jp")
#Scraping (Decodierung ist die URL des Anforderungsmoduls.Der Parser ist mit Text fertig"xml"Angegeben als)
soup=BeautifulSoup(url.text,"xml")
-Wenn Sie die analysierten Daten in die Variable suppe einfügen, extrahiert __soup.selected_one ("CSS-Selektor") __ nur das erste Element, das dies erfüllt. Wenn der Teil selected_one select ist, werden alle angegebenen Elemente aufgelistet und extrahiert. -Der __CSS-Selektor ist eine Methode zum Anzeigen von Elementen in der CSS-Darstellung. __ Sie können dies auch verwenden, um ein Element innerhalb eines Elements anzugeben (z. B.). Das h1-Element innerhalb eines body-Elements ist "body> h1".
Google_title = soup.find("title") #<title>Google</title>
Google_h1 = soup.select("body > h1") #[](Eine leere Liste wird ausgegeben, da kein h1-Element des body-Elements vorhanden ist)
-Wenn das Obige unverändert bleibt, wird Google_title mit dem angehängten Titel-Tag ausgegeben. Mit text kann jedoch nur der Text dieser Tags abgerufen werden.
print(Google_title.text) #Google
・ Mit der bisherigen Methode können Sie jeweils nur eine Seite kratzen. Wenn Sie mehrere Seiten kratzen möchten, können Sie die URL der anderen Seite über den Link zur anderen Seite auf der oberen Seite usw. abrufen und alle URLs durch iterative Verarbeitung kratzen. -Die URLs anderer Seiten können mit __top page URL + href-Attribut (Link jeder Seite) __ des -Elements abgerufen werden.
top="http://scraping.aidemy.net"
r=requests.get(top)
soup=BeautifulSoup(r.text,"lxml")
url_lists=[]
#Rufen Sie die URL einer anderen Seite über den Link ab
#(Die Methode besteht darin, zuerst alle Tags abzurufen, mit get das href-Attribut für jedes zu codieren und es mit topURL zu verbinden, um daraus eine URL zu machen.)
urls = soup.find_all("a")
for url in urls:
url = top + url.get("href")
url_lists.append(url)
・ Wenn Sie die URL einer anderen Seite erhalten können, kratzen Sie sie tatsächlich ab. Wie oben erwähnt, sollte das Scraping für alle URLs durch iterative Verarbeitung durchgeführt werden.
photo_lists=[]
#Nachdem Sie die im vorherigen Abschnitt erhaltene Seite codiert haben, kratzen Sie den Titel des Fotos mit Beautiful Soup ab
for url in url_lists:
r2=requests.get(url)
soup=BeautifulSoup(r2.text,"lxml")
photos=soup.find_all("h3")
#Fügen Sie den Titel des Fotos hinzu, das Sie erhalten haben, indem Sie ihn ohne das h3-Tag in die Liste aufnehmen
for photo in photos:
photo_text=photo.text
photo_lists.append(photo_text)
print(photo_lists) #['Minim incididunt pariatur', 'Voluptate',...(Abkürzung)]
Diese Zeit ist vorbei. Vielen Dank, dass Sie so weit gelesen haben.
Recommended Posts