Indeed.com hat einen Artikel, der das Gehaltsniveau und die Anzahl der Fälle anzeigt. Verwenden Sie diesen Punkt, um das Durchschnittsgehalt zu berechnen.
avgsalary.py
import urllib.request, urllib.parse
from bs4 import BeautifulSoup
import re, getopt, sys
import numpy as np
def avgsalary(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(id="SALARY_rbo")
results = result.find_all("li")
salaries = []
num_salaries = []
for result in results:
tmp = result.a["title"]
tmp = re.sub(',','', tmp)
tmp = re.sub(r'([0-9]+)[^\d]+([0-9]+).*$', r'\1,\2', tmp);
tmp = tmp.split(",")
salaries.append(tmp[0])
num_salaries.append(tmp[1])
salaries = np.array(salaries).astype(np.float)
salaries *= 10000
num_salaries = np.array(num_salaries).astype(np.float)
return(np.sum(salaries * num_salaries)/np.sum(num_salaries))
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(avgsalary(query, location))
if __name__ == "__main__":
main()
$ python avgsalary.py -l Gotenba
2312722.94887
Dieser Code führt Folgendes aus:
Zum Beispiel ist der folgende Vergleich interessant.
$ python avgsalary.py -q programmer
4469298.24561
$ python avgsalary.py -q Programmierer
3116876.47306
Dieser Vergleich bedeutet im Allgemeinen die Differenz des Jahreseinkommens zwischen "englischen Jobs" und "japanischen Jobs". Sie können sehen, wie wichtig Englisch ist, wenn man bedenkt, dass englische Jobs ein höheres Jahreseinkommen von mehr als 1 Million haben. Übrigens, wenn Sie die US-Version von Indeed.com verwenden, können Sie sehen, dass das durchschnittliche Gehalt amerikanischer Programmierer über 7 Millionen Yen liegt.