Rufen Sie die URL des Linkziels ab, indem Sie den Textsatz mit Python Scraping (Beautiful Soup) + XPath angeben

Ich habe seit neulich trainiert, aber Ich konnte die folgenden Dinge nicht tun, Ich habe es geschafft, also werde ich es in den Artikel schreiben.

-Ich möchte den Text und die Link-Ziel-URL, die in der Tabellenstruktur vorhanden sind, als Satz entfernen (mithilfe von DataFrame von Pandas). -Die URL des Linkziels hatte mehrere a hrefs in derselben Tabelle, und es wurde kein identifizierbarer Name angegeben, sodass es schwierig war, auch nur einen regulären Ausdruck zu verwenden. → Ich habe mich für XPath entschieden, weil es gut schien, einen Textsatz anzugeben, ihn als Linkziel für diesen Text anzugeben und ihn zu kratzen. (DataFrame gibt einen Fehler zurück, wenn die Anzahl der Zeilen nicht ausgerichtet ist. Daher möchte ich unnötige Daten weglassen und sie sicher übernehmen.) ・ Schöne Suppe kann XPath nicht verwenden, aber es kann mit lxml gemacht werden.

[Seite, auf die ich mich bezog] http://gci.t.u-tokyo.ac.jp/tutorial/crawling/ http://www.slideshare.net/tushuhei/python-xpath http://qiita.com/tamonoki/items/a341657a86ff7a945224

scraping.py


#coding: utf-8
from bs4 import BeautifulSoup
import urllib2
import pandas as pd
import time
import lxml.html

aaa = []
bbb = []

for page in range(1,2):
	url = "http://www.~~~" + str(page)
	html = urllib2.urlopen(url)
	html2 = urllib2.urlopen(url)
	soup = BeautifulSoup(html, "lxml")
	dom = lxml.html.fromstring(html2.read())

	for o1 in soup.findAll("td", class_="xx"):
		aaa.append(o1.string)

	for o2 in dom.xpath(u"//a[text()='xxx']/@href"): #Holen Sie sich href, indem Sie Text für xxx Teil angeben
		bbb.append(o2)

	time.sleep(2)

df = pd.DataFrame({"aaa":aaa, "bbb":bbb})
print(df)
df.to_csv("xxxx.csv", index=False, encoding='utf-8')

Es ist einfach, aber das ist es für heute.

Recommended Posts

Rufen Sie die URL des Linkziels ab, indem Sie den Textsatz mit Python Scraping (Beautiful Soup) + XPath angeben
[Python] Löschen Sie, indem Sie ein Tag mit Beautiful Soup angeben
Versuchen Sie es mit Python + Beautiful Soup
Kratzen mit Python und schöner Suppe
Abrufen von Eigenschaftsinformationen durch Scraping mit Python
Schreiben Sie einen einfachen kopflosen Web-Scraping-Bot in Python mit Beautiful Soup 4
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Angeben des Modulladeziels mit GAE-Python
[Für Anfänger] Web-Scraping mit Python "Greifen Sie auf die URL auf der Seite zu, um den Inhalt abzurufen."
Rufen Sie die URL des HTTP-Umleitungsziels in Python ab
Kratzen mit schöner Suppe
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten
Tischkratzen mit schöner Suppe
[Python-Scraping] Geben Sie die URL und den Titel der Site mit einem bestimmten Schlüsselwort in eine Textdatei ein
[Python] Holen Sie sich Elemente, indem Sie Attribute mit Präfixsuche in BeautifulSoup angeben
Holen Sie sich Splunk Download-Link durch Scraping
Link, um mit Python zu beginnen
Mehrere Seiten mit Beautiful Soup verschrotten
[Python] Ein Memorandum der schönen Suppe4
Holen Sie sich das Wetter mit Python-Anfragen
Kratzen mit schöner Suppe in 10 Minuten
Holen Sie sich Qiita-Trends mit Python-Scraping
Website-Scraping mit Beautiful Soup in Python
Holen Sie sich Wetterinformationen mit Python & Scraping
Ein Memo, das durch Umbenennen der Dateinamen im Ordner mit Python organisiert wird
Extrahieren Sie mit Python Zeilen, die den Bedingungen entsprechen, aus einer Textdatei
Sortieren Sie Anime-Gesichter, indem Sie Anime-Charakterseiten mit Beautiful Soup und Selenium abkratzen
Ich erhalte einen Python No-Modul mit dem Namen 'Encodings' mit dem Befehl aws
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
[Python] Ruft den Variablennamen mit str ab
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Installieren Sie, indem Sie die Version mit pip angeben
Versuchen Sie HTML-Scraping mit der Python-Bibliothek
[Python] Ersetzen Sie den von MeCab ausgegebenen Text durch die wichtigen Wörter, die von MeCab + Term Extract extrahiert wurden.
Python / Unterprozess> Symbolischer Link Implementierung, um nur den Zieldateinamen abzurufen> os.readlink ()
Holen Sie sich eine Liste der Artikel, die von Benutzern mit Python 3 Qiita API v2 veröffentlicht wurden
[Python] So speichern Sie Bilder mit Beautiful Soup sofort im Web
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung