[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!

zunaechst

Hoppla! Das ist Jesse. Ich habe gerade von der Villa überlebt und bin nur ein Anfänger. Ich werde es zusammenstellen, damit ich mich darauf beziehen kann, nur für den Fall, dass es ungefähr die gleiche Anzahl von Leuten gibt! Oh, und ich schreibe, weil ich Glück habe, wenn sich eine starke Person öffnet und mir einen Rat gibt! Lol

Oh, ich benutze Python3!

Crawlen x Scraping mit Python und Selen!

--Teil1: Diese Seite! Übe, die Quelle auf einer Seite zu bekommen und zu reinigen!

Inhalt

Schreiben Sie wiederum, was Sie getan haben.

Quelle von URL abrufen

Ich habe mich gefragt, ob ich es mit Anfragen machen würde, aber ist dies auf diejenigen beschränkt, deren API für die Öffentlichkeit zugänglich ist? Ich wusste es nicht, also importierte und verwendete ich den Web-Treiber von Selen.

Wenn Sie kein Selen installiert haben Mac: Versuchen Sie, "python3 -m pip install selenium" in Ihrem Terminal auszuführen! (Ich weiß nicht warum, aber ich bin damit fertig!) Windows: Es wäre schön das zu sehen! → https://www.seleniumqref.com/introduction/python/Python_Sele_Ins.html

sample.py


import re
from selenium import webdriver
from time import sleep

def gettxt():
    #Geben Sie die URL der Webseite an, aus der Sie die Quelle extrahieren möchten, den Pfad des Chromedrivers und den Dateinamen, um den Inhalt zu speichern!
    url = "https://www.sample.com"
    path = "/Users/sample/Downloads/chromedriver"
    filename = "data/sample.txt"

    driver = webdriver.Chrome(path)
    driver.get(url)
    sleep(5)
    output = driver.page_source

    with open(filename,"w",encoding="utf8") as f:
        f.write(output)
    sleep(3)
    driver.quit()

Bassari schnitt den unnötigen Teil!

sample.py


def trimming():
    #Geben Sie den Namen der zu lesenden und der zu schreibenden Datei an!
    filename = "data/sample.txt"
    filename2 = "data/sample2.txt"
    with open(filename) as f:
        cntnt = f.read()

    #Lesen Sie die Quelle des Ortes, den Sie trimmen möchten, und geben Sie die Start- und Endzeichenfolgen ein!
    regexen = [
        r'<tbody><tr class="Die Anfangsklasse der gewünschten Informationen">',
        r'</td></tr></tbody></table></div><div class="Nächste Klasse mit den gewünschten Informationen"',
    ]
    #Die Pluralform des Index sind Indizes
    indices = [0,0]

    for i in range(0,2):
        matchObj = re.search(regexen[i],cntnt)
        indices[i] = matchObj.start()
    rslt = cntnt[indices[0]:indices[1]]

    with open(filename2,"w",encoding="utf8") as f2:
        f2.write(rslt)

Fehlerbehebung

TypeError: expected string or bytes-like object Ich habe diesen Fehler bekommen, Es war ein Schmerz, nur das vorletzte zu vergessen ()! Lol () Wird für Funktionen benötigt, die keine Argumente annehmen, daher bin ich nicht daran gewöhnt.

sample.py


    matchObj.start()

Entfernen Sie das Tag

Konvertieren Sie zunächst, wo die Zeile bricht. Als nächstes setzen Sie ein Komma. Schließlich habe ich alle Tags gelöscht!

Ich dachte, es wäre schön, in eine Schleife aus Zahlen und eine Liste zu schreiben, aber Wörterbuch oder Karte waren besser, damit Sie die Korrespondenz sehen können! Lol

Ich habe den kommentierten Teil unten noch einmal geschrieben!

sample.py


def removeTag():
    filename2 = "data/sample2.txt"
    filename3 = "data/sample3.csv"

    #Jedes Zeichen ist eine beliebige Zeichenfolge mit 0 oder mehr Wiederholungen!
    regex0 = r'<.*>'
    #Aber oben ganz am Anfang<Vom letzten>Bring nicht alles auf den Punkt.
    #Hinter dem Sternchen?Wenn Sie hinzufügen, wird es von vorne aufgenommen.
    regex = r'<.*?>'

    regexen = [
        r'</tr>',
        r'</td>',
        r'<.*?>',
    ]
    after = [
        "\n",
        ",",
        "",
    ]

    with open(filename2) as f:
        contents = f.read()

    for i in range(0,3):
        contents = re.sub(regexen[i],after[i],contents)

    contents += ","

    with open(filename3,"w") as f:
        f.write(contents)

Normaler Ausdruck kürzeste Übereinstimmung

Ich wusste es überhaupt nicht, aber als ich nach regulären Ausdrücken suchte, fand ich das erste Match von vorne nicht! Vielmehr holen sie normalerweise die längste. "Normal" ist schwierig ...

sample.py


    #Jedes Zeichen ist eine beliebige Zeichenfolge mit 0 oder mehr Wiederholungen!
    regex0 = r'<.*>'
    #Aber oben ganz am Anfang<Vom letzten>Bring nicht alles auf den Punkt.
    #Hinter dem Sternchen?Wenn Sie hinzufügen, wird es von vorne aufgenommen.
    regex = r'<.*?>'

Unveröffentlichte Referenzseite

Am Ende

Ich werde es aktualisieren, wenn ich in Zukunft etwas tun kann!

Recommended Posts

[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!
Kratzen Sie das Essen mit Python und geben Sie es an CSV aus
Schaben mit Selen + Python Teil 1
Schreiben Sie mit Python in csv
Schaben mit Selen + Python Teil 2
Ausgabe in eine CSV-Datei mit Python
Scraping mit Python
Scraping mit Python
Python: Scraping Teil 1
Python: Scraping Teil 2
Automatisieren Sie einfache Aufgaben mit Python Part1 Scraping
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Scraping mit Python + PhantomJS
Schaben mit Selen [Python]
Scraping mit Python + PyQuery
Scraping von RSS mit Python
So messen Sie die Ausführungszeit mit Python Teil 1
Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3
So messen Sie die Ausführungszeit mit Python Part 2
Bildverarbeitung mit Python (Teil 2)
Ich habe versucht, mit Python zu kratzen
Stellen Sie mit Python eine Verbindung zu BigQuery her
Python mit freeCodeCamp Teil1 studieren
Lesen Sie CSV mit Python-Pandas
Angrenzende Bilder mit Python Teil 1
Web Scraping mit Python + JupyterLab
Schaben mit Selen in Python
Schaben mit Chromedriver in Python
Festliches Scraping mit Python, Scrapy
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Stellen Sie mit Python eine Verbindung zu Wikipedia her
Post to Slack mit Python 3
Hochladen mit Heroku, Flask, Python, Git (Teil 3)
Scraping mit Selen in Python
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
Bildverarbeitung mit Python (Teil 1)
Scraping mit Tor in Python
Nampre mit Python lösen (Teil 2)
Hochladen mit Heroku, Flask, Python, Git (Teil 1)
Bildverarbeitung mit Python (3)
[Python] Ein Memo zum vertikalen Schreiben von CSV mit Pandas
Kratzwettervorhersage mit Python
Hochladen mit Heroku, Flask, Python, Git (Teil 2)
Schalten Sie Python mit Alternativen auf 2.7 um
[Python-pptx] Gibt PowerPoint-Schriftinformationen mit Python in CSV aus
Ich habe versucht, mit Python zu kratzen
Web Scraping Anfänger mit Python
Laden Sie die CSV-Datei mit Python herunter
Ich möchte Daten mit Python analysieren können (Teil 3)
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte Daten mit Python analysieren können (Teil 2)
[Python] Bis ein Scraping-Anfänger die J-League-Rangliste in einer CSV-Datei speichert
Verschieben von CSV-Dateien mit Python Teil 1
Versuchen Sie es mit Python + Beautiful Soup
Spielen Sie handschriftliche Zahlen mit Python Part 1
Link, um mit Python zu beginnen
Machen Sie Apache Log CSV mit Python
Scraping mit Node, Ruby und Python