Ich habe kürzlich Deep Learning gelernt und versucht, im TensorFlow-Tutorial mit seq2seq zu spielen und etwas zu implementieren, das auf Konversationen reagieren kann. Es gibt jedoch nirgendwo japanische Konversationsdaten. .. .. Also beschloss ich zu kratzen und zu sammeln.
Der tatsächliche Quellcode ist unten. https://github.com/ryosuke1217/askfm_q-a_scraper/blob/master/askfm.py
Abkratzen aus Chrome mit Selen.
askfm.py
driver = webdriver.Chrome()
driver.get("https://ask.fm/" + word)
wordには取得したいURLの「ask.fm/」以降をコマンドラインから渡してあげます。
askfm.py
while True:
scroll_h = driver.execute_script("var h = window.pageYOffset; return h")
judge = driver.execute_script("var m = window.pageYOffset; return m")
previous_h = driver.execute_script("var h = window.pageYOffset; return h")
#scrollen
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
sleep(3)
after_h = driver.execute_script("var h = window.pageYOffset; return h")
if previous_h == after_h:
break
print('load complete')
Indem Sie beim Scrollen die Höhe des Bildschirms ermitteln und fortfahren, bis sich nichts mehr ändert Sie können zur untersten Ebene scrollen.
askfm.py
questions = driver.find_elements_by_class_name("streamItemContent-question")
answers = driver.find_elements_by_class_name("answerWrapper")
qas = [(q.find_element_by_tag_name('h2').text, a.find_element_by_tag_name('p').text) for q, a in zip(questions, answers)]
Sammeln Sie die Frage- und Antwortteile aus der HTML-Quelle des Bildschirms.
askfm.py
with codecs.open('data/askfm_data_' + word + '.txt', 'w', 'utf-8') as f:
for q, a in qas:
if q == '' or a == '' or 'http' in q or 'http' in a:
continue
q = q.replace('\n', '')
a = a.replace('\n', '')
f.write(q)
f.write('\n')
f.write(a)
f.write('\n')
f.write('\n')
driver.quit()
Organisieren Sie danach die Daten in der gewünschten Form, schreiben Sie sie in eine Datei und beenden Sie den Vorgang.
askfm_data_partyhike.txt
Als ich jung war, hasste Ayumi Hamasaki die von hinten gefüllte Aura, aber in letzter Zeit fühlt sich Ayumi Hamasaki ziemlich blau an.
Ist es nicht ein Debooth, nicht Bruce?
Ich hatte die Jobsuche satt. Bitte geben Sie mir einen Rat ...
Die harte Arbeit dieser Zeit ist 90 des Restes meines Lebens%Es ist besser, weiterzulaufen, ohne aufzugeben, auch wenn Sie es ein wenig übertreiben. Wenn Sie glauben, dass die verbleibenden Jahrzehnte in höchstens einigen Monaten entschieden werden, sollten Sie in der Lage sein, Ihr Bestes zu geben.
Gelegentlich werden Leute zum Trinken eingeladen, aber wie viele Leute werden jedes Mal teilnehmen?
Unabhängig vom Geschlecht trinke ich es nur von Hand. Wenn Sie mehr als eine machen, wird es eine Mischung von Leuten geben, die Sneak Shots machen und persönliche Informationen auf 2 Kanälen schreiben. Ich bekomme jedes Mal 5 bis 10 DMs, aber die meiste Zeit bekomme ich es nicht, weil ich nicht viele Leute bekomme, denen ich vertrauen kann.
Möchtest du runterlaufen?
Ich glaube nicht
Lippen und Lippen Augen und Augen und Hände und Hände Verbietet Gott nichts?
Ich liebe dich ~ × 3
Tut Ihr Onkel etwas gegen Belästigungsvorwürfe im Nahverkehrszug?
Ich steige selten in einen überfüllten Zug, weil ich spät ankomme, aber hin und wieder greife ich mit beiden Händen nach einem Riemen und schütze mich vollständig.
・
・
Ausgelassen, weil es unten riesig ist
Es ist eher ein Frage- und Antworttext als ein Gespräch. Ich werde es gut benutzen, also bin ich okay.
Danke fürs Zuschauen.
Recommended Posts