[PYTHON] J'ai essayé de récupérer les données de conversation d'ASKfm

Gratter du texte depuis ASKfm

J'ai récemment appris le Deep Learning, j'ai joué avec seq2seq dans le didacticiel TensorFlow et mis en œuvre quelque chose qui peut répondre aux conversations. Cependant, il n'y a aucune donnée de conversation japonaise nulle part. .. .. J'ai donc décidé de gratter et de ramasser.

Essayez de mettre en œuvre

Le code source réel est ci-dessous. https://github.com/ryosuke1217/askfm_q-a_scraper/blob/master/askfm.py

Grattage de Chrome avec du sélénium.

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")
    #faire défiler
    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')

En obtenant la hauteur de l'écran tout en faisant défiler et en continuant jusqu'à ce qu'il n'y ait pas de changement Vous pouvez faire défiler jusqu'au calque inférieur.

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)]

Collectez les parties questions et réponses à partir de la source HTML de l'écran.

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()

Après cela, organisez les données dans le formulaire requis, écrivez-le dans un fichier et terminez.

J'ai essayé de courir

askfm_data_partyhike.txt


Quand j'étais jeune, Ayumi Hamasaki détestait l'aura remplie par l'arrière, mais récemment Ayumi Hamasaki se sent plutôt bleue.
N'est-ce pas un debooth, pas Bruce?

J'étais fatigué de chercher un emploi. Veuillez me donner quelques conseils ...
Le dur labeur de cette époque est 90 du reste de ma vie%Il vaut mieux continuer à courir sans abandonner même si vous en faites un peu trop. Si vous pensez que les décennies restantes seront décidées dans quelques mois au plus, vous devriez pouvoir faire de votre mieux.

Parfois, les gens sont invités à boire, mais combien de personnes participeront à chaque fois?
Peu importe le sexe, je ne le bois qu'à la main. Si vous en faites plus d'un, il y aura un mélange de personnes qui prendront des photos et rédigeront des informations personnelles sur 2 canaux. Je reçois 5 à 10 DM à chaque fois, mais la plupart du temps je ne comprends pas parce que je n'ai pas beaucoup de gens en qui je peux avoir confiance.

Aimeriez-vous vous épuiser?
Je ne pense pas.

Lèvres et lèvres Yeux et yeux, mains et mains Dieu n'interdit-il rien?
Je t'aime ~ × 3

Votre oncle prend-il des mesures contre les accusations d'agression dans le train de banlieue?
Je monte rarement dans un train bondé car j'arrive en retard, mais de temps en temps je prends une sangle à deux mains et me protège complètement.
・
・
Omis car il est énorme en dessous

C'est un texte de questions et réponses plutôt qu'une conversation, Je vais bien l'utiliser, donc je vais bien.

Merci d'avoir regardé.

Recommended Posts

J'ai essayé de récupérer les données de conversation d'ASKfm
J'ai essayé de gratter
J'ai essayé de gratter avec Python
J'ai essayé de collecter des données sur un site Web avec Scrapy
J'ai essayé de lire les données d'un fichier en utilisant Node.js.
J'ai essayé de gratter avec du python
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc
J'ai essayé AdaNet pour les données de table
J'ai essayé webScraping avec python.
J'ai essayé la mise en file d'attente des tâches de Celery
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc Préparation 1
J'ai essayé d'utiliser l'API de données YOUTUBE V3
J'ai essayé l'analyse factorielle avec des données Titanic!
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
J'ai essayé de gratter la météo Yahoo (édition Python)
J'ai essayé d'utiliser Headless Chrome de Selenium
[Bases de la science des données] J'ai essayé d'enregistrer de csv à mysql avec python
J'ai essayé Web Scraping pour analyser les paroles.
J'ai essayé d'accéder à l'API Qiita depuis le début
J'ai essayé le web scraping en utilisant python et sélénium
J'ai recherché Railway Kawayanagi à partir des données
J'ai essayé d'obtenir une image en grattant
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé PyQ
J'ai essayé Python! ] Diplômé aujourd'hui de "Tout le monde Python! Qu'est-ce que Python!"!
J'ai essayé d'analyser les principaux composants avec les données du Titanic!
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé AutoKeras
[Python] Flux du scraping Web à l'analyse des données
J'ai essayé le moulin à papier
J'ai essayé django-slack
J'ai essayé Django
J'ai essayé spleeter
J'ai essayé DBM avec Pylearn 2 en utilisant des données artificielles
J'ai essayé cgo
J'ai essayé de prédire les courses de chevaux en faisant tout, de la collecte de données à l'apprentissage en profondeur
J'ai essayé de créer un cadre de données pandas en grattant les informations de rappel d'aliments avec Python
J'ai essayé de détecter l'iris à partir de l'image de la caméra
J'ai essayé de prédire le match de la J League (analyse des données)
J'ai essayé d'exécuter python à partir d'un fichier chauve-souris
J'ai essayé de regrouper les données ECG en utilisant la méthode K-Shape
J'ai essayé d'utiliser l'API de Sakenowa Data Project
J'ai essayé d'utiliser PySpark de Jupyter 4.x sur EMR
J'ai essayé de gratter la publicité du site de dessin animé piraté
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
J'ai essayé d'utiliser paramétré
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser la mimesis
J'ai essayé d'utiliser anytree
J'ai essayé d'exécuter pymc
Extraction de données depuis S3
J'ai essayé le spoofing ARP
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé Python> autopep8
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser Pipenv