Ich programmiere Python seit ungefähr 3 Monaten an Wochentagen und Wochenenden, aber es macht mir immer noch Spaß.
Was ich kürzlich gemacht habe
1, Morphologische Analyse ・ Ich wollte den Datenfluss in Mecab erfassen, nur durch die Nomenklatur eingrenzen, die Häufigkeit berechnen, dann ein Benutzerwörterbuch hinzufügen und es erneut versuchen, also habe ich es ein wenig versucht. ・ Da es sofort abgeschlossen wurde, werde ich die Details nicht beschreiben. .. ..
[Seite, auf die ich mich bezog] http://qiita.com/fantm21/items/d3d44f7d86f09acda86f http://qiita.com/naoyu822/items/473756fb8e8bbdc4d734 http://www.mwsoft.jp/programming/munou/mecab_command.html http://shimz.me/blog/d3-js/2711
2, kratzen ・ Das Schaben von Texten und Bildern hängt sehr oft mit der Arbeit zusammen, deshalb wollte ich einiges lernen, also habe ich diesmal mit Büchern angefangen https://www.amazon.co.jp/dp/4873117615
・ Zunächst einmal war klar, dass Python + Beautiful Soup schnell eine einzelne Seite mit einer leicht verständlichen Struktur erstellen kann.
・ Als nächstes stellte sich heraus, dass die von JS generierte Site mit der obigen Kombination schwierig ist und es PhantomJS und CasperJS gibt. Durch Schreiben in JS und Scraping kann sie schnell wieder aufgenommen werden.
・ Danach wurde festgestellt, dass selbst in Python die Kombination von Selenium + PhantomJS von JS generierte Websites kratzen kann.
・ Als ich vorerst versuchte, mit dem Pandas-Datenrahmen des letzten Codes in CSV zu konvertieren, blieb ich bei UnicodeEncodeError hängen, aber ich möchte dies vorerst mit dem Ende tun, dass ich die Codierungsspezifikation an die Stelle gesetzt habe, um sie mit Datenrahmen in CSV zu konvertieren und zu lösen. Wurde verwirklicht
[Seite, auf die ich mich bezog] http://doz13189.hatenablog.com/entry/2016/08/21/154219 http://zipsan.hatenablog.jp/entry/20150413/1428861548 http://qiita.com/okadate/items/7b9620a5e64b4e906c42
Ich habe nur die Quellen der Websites, auf die ich verwiesen habe, mit Kopieren und Einfügen kombiniert, aber ich habe es mit den folgenden Quellen gemacht. .. ..
scraping.py
import lxml.html
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
import time
aaa = []
bbb = []
ccc = []
for page in range(1,2): #Stellen Sie das Seitenlimit entsprechend ein
driver = webdriver.PhantomJS()
driver.get("https://www.~~=page=" + str(page))
data = driver.page_source.encode('utf-8')
soup = BeautifulSoup(data, "lxml")
for o in soup.findAll("h3", class_="hoge"):#Ich sehe es oft, aber warum nennt es jeder hoge?
aaa.append(o.string)
for o1 in soup.findAll("h3", class_="hoge"):#Warum hoge?
bbb.append(o1.string)
for o2 in soup.findAll("div", class_="hoge"):#Was...?
ccc.append(o2.get_text())
time.sleep(3)
df = pd.DataFrame({"aaa":aaa, "bbb":bbb, "ccc":ccc})
print(df)
df.to_csv("hogehoge.csv", index=False, encoding='utf-8')
driver.quit()
Es gibt viele Orte, bei denen ich mir nicht sicher bin, aber es hat vorerst funktioniert.
Ich werde weiter studieren.