Un script python qui obtient le nombre de travaux pour une condition spécifiée sur Indeed.com

Je voulais produire des statistiques sur le nombre de personnes recrutées par région et le nombre de personnes recrutées par type d'emploi dans les activités de changement d'emploi, j'ai donc créé un script à utiliser pour les statistiques.

Aperçu

Envoyez une requête et une région à Indeed.com, extrayez le nombre de résultats de recherche à partir des résultats reçus et affichez-les. Utilisez urllib, re et 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'Résultats de recherche d'emploi([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()

Essayez depuis la CLI

Exécutez la commande suivante.

$ python jobcounter.py -q Programmeur-l Shibuya

Le résultat de l'exécution est le suivant.

result.


1740

Ce résultat signifie que "1740" ont été trouvés suite à la recherche d'emplois, y compris "programmeur" dans la zone "Shibuya".

Comment utiliser Jobcounter

Les principales utilisations sont d'obtenir des statistiques telles que "combien d'emplois sont disponibles pour chaque catégorie d'emploi dans une zone spécifique" et "combien d'emplois sont disponibles pour chaque catégorie d'emplois dans une zone spécifique". Peut être utilisé.

jobcounter(query, location)

J'ai créé une fonction facile à comprendre, donc tout ce que vous avez à faire est de passer la requête et la région dans une boucle avec un tableau ou un yaml. La valeur de retour est le nombre de cas.

point important

urllib et re doivent être inclus à l'origine, mais bs4 doit être inclus avec pip.

# pip install bs4

De plus, si vous modifiez l'apparence, la formulation ou le code HTML du côté idead.com, cela peut cesser de fonctionner. Plus précisément, il existe un élément html défini par l'id "searchCount", mais si ce nom d'id est modifié, il ne peut pas être obtenu. Sinon, puisque le texte de searchCount est formaté avec re, il ne sera pas formaté correctement si le texte ne correspond pas à l'expression régulière.

Web scraping et philosophie Unix

Le web scraping est l'extraction d'informations à partir d'un site Web, et ce script est également un type de web scraping. Il existe une philosophie UNIX de "bien faire une chose", et le script ci-dessus est généralement basé sur cette idée.

Il n'a pas de fonction spectaculaire, mais c'est une bonne fonction pour obtenir des statistiques sur le nombre d'emplois. Le script lui-même n'est pas compliqué et tout le monde peut le comprendre.

Recommended Posts

Un script python qui obtient le nombre de travaux pour une condition spécifiée sur Indeed.com
[Python] Un programme qui compte le nombre de vallées
Script Python qui compare le contenu de deux répertoires
[Python] Programmation pour trouver le nombre de a dans une chaîne de caractères qui se répète un nombre spécifié de fois.
Script Python qui peut vérifier l'état du serveur à partir du navigateur
Un script qui renvoie 0, 1 attaché au premier Python prime
[Python] Un programme qui calcule le nombre de segments de chocolat qui remplissent les conditions
[Python] Un programme qui calcule le nombre de chaussettes jumelées
Obtenez le salaire moyen d'un emploi avec des conditions spécifiées sur Indeed.com
D'un livre qui apprend de manière intéressante la façon de penser du programmeur (Python)
"Kit Python" qui appelle des scripts Python depuis Swift
[Python] Un programme qui calcule le nombre de mises à jour des enregistrements les plus élevés et les plus faibles
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Récupérer le code retour d'un script Python depuis bat
Points Python du point de vue d'un programmeur en langage C
[Python] Un programme qui compare les positions des kangourous.
[Python] Un programme qui trouve le nombre d'étapes le plus court dans un jeu qui traverse les nuages
Un script qui peut effectuer des tests de résistance en fonction du nombre de cœurs CPU
[Python] Représentation du nombre de plaintes des compagnies d'assurance-vie dans un graphique à barres
Différent du type d'importation de python. Signification de depuis A import B
python Extraction de condition de la liste que j'oublie souvent
Obtenez le nombre d'éléments spécifiques dans la liste python
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
Prise en compte des décorateurs Python du type qui passe des variables
Un ensemble de fichiers de script qui font wordcloud avec Python3
Une bibliothèque qui surveille la vie et la mort d'autres machines en envoyant un ping à partir de Python
Script Python qui va de la recherche Google à l'enregistrement de la page de résultats de recherche à la fois
Soit Code Day72 à partir de zéro "1498. Nombre de sous-séquences qui satisfont la condition de somme donnée"
[Python] Un programme pour trouver le nombre de pommes et d'oranges qui peuvent être récoltées
Mémorandum de l'outil de gestion de paquets Python ez_setup
Agréger les appels quotidiens par seconde à partir des journaux du serveur Web en Python
Une formule qui calcule simplement l'âge à partir de la date de naissance
Existence du point de vue de Python
À partir d'un livre que le programmeur peut apprendre ... (Python): trouver la valeur la plus fréquente
À partir d'un livre que les programmeurs peuvent apprendre ... (Python): examen des tableaux
L'histoire de la création d'un pilote standard pour db avec python.
[Python] Obtenir la date de mise à jour d'un article d'actualité à partir de HTML
Une fonction qui mesure le temps de traitement d'une méthode en python
Une petite histoire addictive avec les permissions du répertoire spécifié par expdp (pour les débutants)
[Python] Un programme qui trouve le nombre maximum de jouets pouvant être achetés avec votre argent
[python] Une note que j'ai commencé à comprendre le comportement de matplotlib.pyplot
L'histoire de la création d'un module qui ignore le courrier avec python
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Créez un bot qui publie sur Slack le nombre de personnes positives pour le nouveau virus corona à Tokyo
Une histoire sur la création d'un programme qui augmentera le nombre d'abonnés Instagram de 0 à 700 en une semaine
Traitement ETL pour un grand nombre de fichiers GTFS Realtime (édition Python)
Extraire les lignes qui correspondent aux conditions d'un fichier texte avec python
Vérifions la chaîne d'octets en mémoire du nombre flottant flottant en Python
Résumé du livre électronique Python utile pour l'analyse de données gratuite
Obtenir la liste des packages de l'utilisateur spécifié à partir des packages enregistrés dans PyPI
Un script python pour Mac qui zippe sans caractères déformés sous Windows
Découvrez le nom de la méthode qui l'a appelée à partir de la méthode qui est python
[Python] Note: Fonction auto-conçue pour trouver la zone de distribution normale
Notes d'apprentissage depuis le début de Python 1
Exécuter l'interpréteur Python dans le script
[python] [meta] Le type de python est-il un type?