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