In einer Universitätsvorlesung hatte ich die Aufgabe, den Erfindungsnamen nach dem Suchgegenstand von der Patentinformationsplattform zu erfassen und durch Verarbeitung natürlicher Sprache zu analysieren. Andere Schüler kopierten die gesamte HTML-Quelle der Seite und verwendeten die Grep-Funktion von Excel und den Editor, um nur das zu extrahieren, was sie benötigten. Ich habe Python verwendet, um es zu automatisieren, nur das zu bekommen, was ich brauchte, und sogar den Prozess des Erstellens einer Textdatei zu automatisieren. Dieses Mal wird der Code zu diesem Zeitpunkt auch als eigenes Memorandum verwendet, aber ich werde ihn veröffentlichen.
1. Einleitung [2. Was ich tun wollte](#Was ich tun wollte) [3. Vorausgesetztes Wissen](# Vorausgesetztes Wissen) 4. Vorbereitung [5. Aktueller Code](# Aktueller Code) [6. Zusammenfassung](# Zusammenfassung) [7. Referenzdokument](# Referenzdokument)
Holen Sie sich die erforderlichen Elemente von Patentinformationsplattform und erstellen Sie eine Textdatei.
Ich frage mich, ob die zum Lesen dieses Codes erforderlichen Kenntnisse wie folgt sind.
Wenn Sie nicht über die erforderlichen Bibliotheken verfügen, um das Programm zu verwenden, installieren Sie es bitte.
>> pip install requests
>> pip install selenium
Sie benötigen außerdem einen Chromedriver. Wenn Sie keinen haben, installieren Sie ihn von hier und verwenden Sie dasselbe Verzeichnis wie Ihr Programm. Bitte setzen Sie es ein.
Bei der Implementierung dieser Zeit war es erforderlich, zum Ende der Seite zu scrollen und sie zu laden, um alle Informationen der Zielseite zu erhalten. Daher habe ich die Bildlauffunktion verwendet, um nach oben zu scrollen. In der Hauptfunktion wird die ID am unteren Rand der Seite erfasst und die Erfindungsnamen für diese Nummer werden erfasst. Informationen zum Abrufen des Werts aus HTML finden Sie unter hier . Nachdem der gesamte Text abgerufen wurde, wird er in der Textdatei gespeichert.
main.py
"""
Ein Programm, das Namen von Patenterfindungen von der Patentinformationsplattform abruft
"""
# coding:utf-8
import os
import time
import requests
from selenium import webdriver
def scroll(driver):
"""
Scrollen Sie die Seite nach unten.
"""
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():
"""
Klicken Sie auf ein Suchelement auf der Patentinformationsplattform
Erwerben Sie den Erfindungsnamen des Patents
"""
path = os.getcwd() #Holen Sie sich das aktuelle Verzeichnis
#Treiber einstellen
driver = webdriver.Chrome(path + '\\chromedriver')
#Zugriff auf Patentinformationsplattform
driver.get('https://www.j-platpat.inpit.go.jp/')
#Das zu suchende Wort einstellen
print('What are you search?')
serach_word = input()
#Festlegen des zu erstellenden Dateinamens
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)
#Seitenlauf
scroll(driver)
#Holen Sie sich die maximale Anzahl der Dinge, die mit dem Suchergebnis übereinstimmen
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)
#Erstellen Sie eine Textdatei
with open(file_name, 'w') as f:
f.write('\n'.join(words))
if __name__ == "__main__":
main()
Dieses Mal habe ich vorgestellt, wie Sie mit Selenium in Python Daten von einer Webseite abrufen und in einer Textdatei speichern können. Ich hoffe, es ist hilfreich für diejenigen, die es von nun an mit Selen sehen möchten.
Recommended Posts