[PYTHON] Ich habe versucht, Konversationsdaten von ASKfm zu kratzen

Text aus ASKfm kratzen

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.

Versuchen Sie zu implementieren

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.

Ich habe versucht zu rennen

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

Ich habe versucht, Konversationsdaten von ASKfm zu kratzen
Ich habe versucht zu kratzen
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, mit Scrapy Daten von einer Website zu sammeln
Ich habe versucht, Daten aus einer Datei mit Node.js zu lesen.
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, mit pypyodbc schnell Daten von AS / 400 abzurufen
Ich habe AdaNet gegen Tabellendaten ausprobiert
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Aufgaben bei Sellerie in die Warteschlange zu stellen
Ich habe versucht, mit pypyodbc Preparation 1 schnell Daten von AS / 400 abzurufen
Ich habe versucht, YOUTUBE Data API V3 zu verwenden
Ich habe versucht, Faktoren mit Titanic-Daten zu analysieren!
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe versucht, Yahoo Wetter zu kratzen (Python Edition)
Ich habe versucht, Headless Chrome von Selenium zu verwenden
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
Ich habe Web Scraping versucht, um die Texte zu analysieren.
Ich habe versucht, die Qiita-API von Anfang an zu aktivieren
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe nach Railway Kawayanagi aus den Daten gesucht
Ich habe versucht, durch Schaben ein Bild zu bekommen
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe PyQ ausprobiert
Ich habe Python ausprobiert! ] Heute Abschluss von "Jeder Python! Was ist Python!"!
Ich habe versucht, die Hauptkomponenten mit Titanic-Daten zu analysieren!
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe AutoKeras ausprobiert
[Python] Fluss vom Web-Scraping zur Datenanalyse
Ich habe es mit Papiermühle versucht
Ich habe versucht, Django-Slack
Ich habe es mit Django versucht
Ich habe es mit Spleeter versucht
Ich habe DBM mit Pylearn 2 unter Verwendung künstlicher Daten ausprobiert
Ich habe es mit cgo versucht
Ich habe versucht, Pferderennen vorherzusagen, indem ich alles von der Datenerfassung bis zum tiefen Lernen getan habe
Ich habe versucht, einen Pandas-Datenrahmen zu erstellen, indem ich mit Python Informationen zum Lebensmittelrückruf abgekratzt habe
Ich habe versucht, Iris aus dem Kamerabild zu erkennen
Ich habe versucht, das Spiel in der J League vorherzusagen (Datenanalyse)
Ich habe versucht, Python aus einer Bat-Datei auszuführen
Ich habe versucht, EKG-Daten mit der K-Shape-Methode zu gruppieren
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
Ich habe versucht, PySpark von Jupyter 4.x auf EMR zu verwenden
Ich habe versucht, die Werbung für die Raubkopien-Website zu kratzen
Ich habe versucht, Dropout zu erklären
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, Pymc auszuführen
Daten aus S3 extrahieren
Ich habe ARP-Spoofing ausprobiert
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Summpy zu verwenden
Ich habe Python> autopep8 ausprobiert
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden