Schaben mit Selen in Python

Einführung

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.

Inhaltsverzeichnis

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)

Was ich machen wollte

Holen Sie sich die erforderlichen Elemente von Patentinformationsplattform und erstellen Sie eine Textdatei.

Vorausgesetztes Wissen

Ich frage mich, ob die zum Lesen dieses Codes erforderlichen Kenntnisse wie folgt sind.

Vorbereitung

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.

Tatsächlicher Code

Klicken Sie hier für Github

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

Zusammenfassung

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.

Referenzdokument

Recommended Posts

Schaben mit Selen in Python
Scraping mit Selen in Python
Scraping mit Selen in Python (Basic)
Schaben mit Selen [Python]
Schaben mit Selen + Python Teil 1
Schaben mit Chromedriver in Python
Scraping mit Tor in Python
Schaben mit Selen + Python Teil 2
Schaben mit Selen
Schaben mit Selen ~ 2 ~
Scraping mit Python
Scraping mit Python
Schaben mit Selen
Scraping mit Python, Selen und Chromedriver
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
Erfolgreiches Schaben mit Selen
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Scraping mit Python + PhantomJS
Screenshot mit Selen (Python Edition)
Üben des Web-Scrapings mit Python und Selen
Scraping mit Python + PyQuery
Scraping von RSS mit Python
Melden Sie sich mit Selenium Python bei Yahoo Business an
Erreichen Sie das Scraping mit Python & CSS Selector in 1 Minute
Ich habe versucht, mit Python zu kratzen
Web Scraping mit Python + JupyterLab
[Python] Scraping in AWS Lambda
Betreiben Sie LibreOffice mit Python
Festliches Scraping mit Python, Scrapy
Debuggen mit pdb in Python
Python: Arbeiten mit Firefox mit Selen
Umgang mit Sounds in Python
Tweet mit Bild in Python
Kombiniert mit Ordnungszahl in Python
Web Scraping mit Selenium (Python)
Kratzwettervorhersage mit Python
[Python + Selen] Tipps zum Scraping
Ich habe versucht, mit Python zu kratzen
Web Scraping Anfänger mit Python
I-Town-Seite mit Selen abkratzen
[Scraping] Python-Scraping
Versuchen Sie es mit Python + Beautiful Soup
Testen mit Zufallszahlen in Python
Scraping mit Node, Ruby und Python
GOTO in Python mit erhabenem Text 3
Arbeiten mit LibreOffice in Python: Importieren
CSS-Analyse mit cssutils in Python
Web Scraping mit Python Erster Schritt
Ich habe versucht, WebScraping mit Python.
Kratzen mit Python und schöner Suppe
Numer0n mit Elementen, die mit Python erstellt wurden
Öffnen Sie UTF-8 mit Stückliste in Python
Kratzen mit schöner Suppe in 10 Minuten
Verwenden Sie rospy mit virtualenv in Python3
Schreiben Sie Selentestcode in Python
Lassen Sie uns mit Python Image Scraping durchführen
Verwenden Sie Python in pyenv mit NeoVim