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.
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.
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