Lors d'une conférence universitaire, j'ai eu la tâche d'acquérir le nom de l'invention en fonction de l'élément de recherche de la plateforme d'information sur les brevets et de l'analyser par traitement du langage naturel. D'autres étudiants ont copié toute la source HTML de la page et ont utilisé la fonction Grep d'Excel et l'éditeur pour extraire uniquement ce dont ils avaient besoin. J'ai utilisé python pour l'automatiser, obtenir uniquement ce dont j'avais besoin et même automatiser le processus de création d'un fichier texte. Cette fois-ci, le code de l'époque est également utilisé comme mémorandum de ma part, mais je le publierai.
1. Introduction [2. Ce que je voulais faire](#Ce que je voulais faire) [3. Connaissances préalables](# Connaissances préalables) 4. Préparation [5. Code réel](# code réel) [6. Résumé](# Résumé) [7. Document de référence](# document de référence)
Obtenez les éléments nécessaires sur la Plateforme d'information sur les brevets et créez un fichier texte.
Je me demande si les connaissances requises pour lire ce code sont les suivantes. --Syntaxe Python de base
Si vous ne disposez pas des bibliothèques nécessaires pour utiliser le programme, veuillez l'installer.
>> pip install requests
>> pip install selenium
Vous aurez également besoin d'un chromedriver, donc si vous n'en avez pas, installez-le à partir ici et utilisez le même répertoire que votre programme. Veuillez le mettre.
Lors de la mise en œuvre de cette fois, afin d'obtenir toutes les informations de la page cible, il était nécessaire de faire défiler vers le bas de la page et de la charger, j'ai donc utilisé la fonction de défilement pour faire défiler vers le haut. Dans la fonction principale, l'ID au bas de la page est acquis et les noms d'invention pour ce numéro sont acquis. Veuillez consulter ici pour savoir comment obtenir la valeur à partir du HTML. Après avoir récupéré tout le texte, il est enregistré dans le fichier texte.
main.py
"""
Un programme qui récupère les noms d'inventions de brevets à partir de la plateforme d'information sur les brevets
"""
# coding:utf-8
import os
import time
import requests
from selenium import webdriver
def scroll(driver):
"""
Faites défiler la page.
"""
html01 = driver.page_source
while 1:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
html02 = driver.page_source
if html01 != html02:
html01 = html02
else:
break
def main():
"""
Accédez à n'importe quel élément de recherche sur la plateforme d'information sur les brevets
Acquérir le nom de l'invention du brevet
"""
path = os.getcwd() #Obtenez le répertoire actuel
#Définir le pilote
driver = webdriver.Chrome(path + '\\chromedriver')
#Accéder à la plateforme d'information sur les brevets
driver.get('https://www.j-platpat.inpit.go.jp/')
#Définition du mot à rechercher
print('What are you search?')
serach_word = input()
#Définition du nom de fichier à créer
print('please type a file name')
file_name = input()
time.sleep(2)
driver.find_element_by_name('s01_srchCondtn_txtSimpleSearch').click()
driver.find_element_by_name('s01_srchCondtn_txtSimpleSearch').send_keys(serach_word)
driver.find_element_by_name('s01_srchBtn_btnSearch').click()
time.sleep(5)
#Défilement de page
scroll(driver)
#Obtenez le nombre maximum de ce qui correspond au résultat de la recherche
id_str = driver.find_elements_by_id('patentUtltyIntnlSimpleBibLst_tableView_numberArea')[-1].text
id_num = int(id_str)
words = []
for i in range(id_num):
word = driver.find_element_by_id('patentUtltyIntnlSimpleBibLst_tableView_invenName{}'.format(i)).text
words.append(word)
print(word)
print(words)
#Créer un fichier texte
with open(file_name, 'w') as f:
f.write('\n'.join(words))
if __name__ == "__main__":
main()
Cette fois, j'ai présenté comment obtenir des données à partir d'une page Web et les enregistrer dans un fichier texte à l'aide de Selenium en Python. J'espère que cela sera utile pour ceux qui veulent le voir en utilisant Selenium à partir de maintenant.
Recommended Posts