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