Ein Python-Skript, das die Anzahl der Jobs für eine bestimmte Bedingung von Indeed.com abruft

Ich wollte Statistiken über die Anzahl der Jobs nach Region und die Anzahl der Jobs nach Job in Jobwechselaktivitäten ausgeben, deshalb habe ich ein Skript erstellt, das für Statistiken verwendet werden kann.

Überblick

Senden Sie eine Abfrage und Region an Indeed.com, extrahieren Sie die Anzahl der Suchergebnisse aus den empfangenen Ergebnissen und zeigen Sie sie an. Verwenden Sie urllib, re und bs4.

Code

jobcounter.py


import urllib.request, urllib.parse
from bs4 import BeautifulSoup
import re, getopt, sys

def jobcounter(query, location):
    query = urllib.parse.quote_plus(query)
    location = urllib.parse.quote_plus(location)
    url = "https://jp.indeed.com/%E6%B1%82%E4%BA%BA?q={}&l={}&radius=0".format(query, location)
            
    request = urllib.request.urlopen(url);
    soup = BeautifulSoup(request.read(), 'html.parser')
    result = soup.find_all(id="searchCount")[0].get_text()
    result = result.replace(",", "");
    result = re.sub(r'Ergebnisse der Jobsuche([0-9]+) .*$', r'\1', result);
    return(result)

def main():

    try:  
        opts, args = getopt.getopt(sys.argv[1:],"q:l:", ["query", "location"]);
    except getout.GetoptError as err:
        #usage()
        sys.exit(2)

    query = ""
    location = ""
    for o, a in opts:
        if o == "-q":
            query = a
        elif o == "-l":
            location = a

    print(jobcounter(query, location))

if __name__ == "__main__":
    main()

Versuchen Sie es mit CLI

Führen Sie den folgenden Befehl aus.

$ python jobcounter.py -q Programmierer-l Shibuya

Das Ausführungsergebnis ist wie folgt.

result.


1740

Dieses Ergebnis bedeutet, dass "1740" als Ergebnis der Suche nach Jobs einschließlich "Programmierer" im Bereich "Shibuya" gefunden wurden.

So verwenden Sie Jobcounter

Die Hauptverwendung besteht darin, Statistiken wie "wie viele Jobs für jede Jobkategorie in einem bestimmten Bereich verfügbar sind" und "wie viele Jobs für jede Jobkategorie in einem bestimmten Bereich verfügbar sind" zu erhalten. Kann verwendet werden.

jobcounter(query, location)

Ich habe eine leicht verständliche Funktion erstellt. Sie müssen also nur die Abfrage und die Region in einer Schleife mit einem Array oder yaml übergeben. Der Rückgabewert ist die Anzahl der Fälle.

wichtiger Punkt

urllib und re sollten ursprünglich enthalten sein, aber bs4 muss in pip enthalten sein.

# pip install bs4

Wenn Sie das Erscheinungsbild, den Wortlaut oder den HTML-Code auf der Seite von idead.com ändern, funktioniert dies möglicherweise nicht mehr. Insbesondere gibt es ein HTML-Element, das durch die ID "searchCount" definiert ist. Wenn dieser ID-Name jedoch geändert wird, kann er nicht abgerufen werden. Da der Text in searchCount mit re formatiert ist, wird er alternativ nicht richtig formatiert, wenn der Text nicht mit dem regulären Ausdruck übereinstimmt.

Web Scraping und Unix-Philosophie

Web Scraping ist das Extrahieren von Informationen von einer Website, und dieses Skript ist auch eine Art von Web Scraping. Es gibt eine UNIX-Philosophie, "eine Sache gut zu machen", und das obige Skript basiert im Allgemeinen auf dieser Idee.

Es hat keine spektakuläre Funktion, aber es ist eine gute Funktion, um Statistiken über die Anzahl der Jobs zu erhalten. Das Skript selbst ist nicht kompliziert und jeder kann es verstehen.

Recommended Posts

Ein Python-Skript, das die Anzahl der Jobs für eine bestimmte Bedingung von Indeed.com abruft
[Python] Ein Programm, das die Anzahl der Täler zählt
Python-Skript, das den Inhalt zweier Verzeichnisse vergleicht
[Python] Programmieren, um die Nummer von a in einer Zeichenfolge zu finden, die eine bestimmte Anzahl von Malen wiederholt.
Python-Skript, das den Status des Servers über den Browser überprüfen kann
Ein Skript, das 0, 1 an die erste Python-Primzahl zurückgibt
[Python] Ein Programm, das die Anzahl der Schokoladensegmente berechnet, die die Bedingungen erfüllen
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
Holen Sie sich das durchschnittliche Gehalt eines Jobs mit bestimmten Bedingungen von Indeed.com
Aus einem Buch, das die Denkweise des Programmierers interessanterweise gelernt hat (Python)
"Python Kit", das Python-Skripte von Swift aufruft
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
Python-Skript zum Abrufen einer Liste von Eingabebeispielen für den AtCoder-Wettbewerb
Holen Sie sich den Rückkehrcode eines Python-Skripts von bat
Python zeigt aus der Perspektive eines C-Sprachprogrammierers
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
[Python] Ein Programm, das die kürzeste Anzahl von Schritten in einem Spiel findet, das Wolken überquert
Ein Skript, das Stresstests entsprechend der Anzahl der CPU-Kerne durchführen kann
[Python] Darstellung der Anzahl der Beschwerden von Lebensversicherungsunternehmen in einem Balkendiagramm
Anders als der Importtyp von Python. Bedeutung von aus A Import B.
Python-Bedingungsextraktion aus der Liste, die ich oft vergesse
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Erstellen eines Python-Skripts, das die e-Stat-API unterstützt (Version 2)
Berücksichtigung von Python-Dekoratoren des Typs, der Variablen übergibt
Eine Reihe von Skriptdateien, die Wordcloud mit Python3 ausführen
Eine Bibliothek, die Leben und Tod anderer Maschinen durch Ping von Python aus überwacht
Python-Skript, das von der Google-Suche zum sofortigen Speichern der Suchergebnisseite führt
Lassen Sie Code Day72 ab Null "1498. Anzahl der Folgen, die die gegebene Summenbedingung erfüllen"
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
Memorandum des Python-Paketverwaltungstools ez_setup
Aggregieren Sie die täglichen Treffer pro Sekunde aus den Webserver-Protokollen in Python
Eine Formel, die einfach das Alter ab dem Geburtsdatum berechnet
Existenz aus Sicht von Python
Aus einem Buch, das der Programmierer lernen kann ... (Python): Finden Sie den häufigsten Wert
Aus einem Buch, das Programmierer lernen können ... (Python): Überprüfung von Arrays
Die Geschichte, einen Standardtreiber für db mit Python zu erstellen.
[Python] Ruft das Aktualisierungsdatum eines Nachrichtenartikels aus HTML ab
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Eine kleine süchtig machende Geschichte mit den Berechtigungen des von expdp angegebenen Verzeichnisses (für Anfänger)
[Python] Ein Programm, das die maximale Anzahl von Spielzeugen findet, die mit Ihrem Geld gekauft werden können
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
Erstellen Sie einen Bot, der die Anzahl der Personen, die für das neue Corona-Virus in Tokio positiv sind, an Slack sendet
Eine Geschichte über das Erstellen eines Programms, mit dem die Anzahl der Instagram-Follower in einer Woche von 0 auf 700 erhöht wird
ETL-Verarbeitung für eine große Anzahl von GTFS-Echtzeitdateien (Python Edition)
Extrahieren Sie mit Python Zeilen, die den Bedingungen entsprechen, aus einer Textdatei
Überprüfen Sie die speicherinterne Byte-Zeichenfolge der Gleitkommazahl in Python
Python-E-Book-Zusammenfassung nützlich für die frei lesbare Datenanalyse
Rufen Sie die Paketliste des angegebenen Benutzers aus den in PyPI registrierten Paketen ab
Ein Python-Skript für Mac, das unter Windows ohne verstümmelte Zeichen komprimiert wird
Den Namen der Methode, die ihn aufgerufen hat, finden Sie in der Python-Methode
[Python] Hinweis: Selbst erstellte Funktion zum Ermitteln des Bereichs der Normalverteilung
Notizen vom Anfang von Python 1 lernen
Führen Sie den Python-Interpreter im Skript aus
[Python] [Meta] Ist der Python-Typ ein Typ?