-
-
Save Echocage/fa1dfd3874ab36ef5646 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import urllib | |
import urllib2 | |
from prettytable import PrettyTable | |
import BeautifulSoup | |
def format_data(item): | |
text = item.text | |
price, users = text.split('+') | |
price = price.strip('$').replace(',', '') | |
users = users.strip('(').strip(')') | |
return int(price), int(users) | |
def generate_stats(url): | |
soup = BeautifulSoup.BeautifulSoup(urllib2.urlopen(url)) | |
response = soup.find(id='SALARY_rbo').findNext() | |
data = filter(lambda x: x != '\n', response.contents) | |
return map(format_data, data) | |
def main(): | |
dev_list = ['Python', 'Java', 'C#', 'C++', 'Ruby', 'PHP', 'HTML5', 'Objective C', 'Android', 'IOS'] | |
base_url = 'http://www.indeed.com/jobs' | |
display_table = PrettyTable(['Title', '#Jobs', 'Avg.Sal']) | |
for dev in dev_list: | |
query = "{dev}".format(dev=urllib.quote(dev)) | |
full_url = '{baseurl}?q={query}'.format(baseurl=base_url, query=query.replace(' ', '+')) | |
stats = list(generate_stats(full_url)) | |
jobs = [users for price, users in stats] | |
total = sum(jobs) | |
salaries = [price * users / total for price, users in stats] | |
display_table.add_row(["{dev} Developer".format(dev=dev), sum(jobs), sum(salaries)]) | |
print display_table | |
if __name__ == '__main__': | |
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+-----------------------+--------+---------+ | |
| Title | #Jobs | Avg.Sal | | |
+-----------------------+--------+---------+ | |
| Python Developer | 95448 | 82562 | | |
| Java Developer | 203378 | 82673 | | |
| C# Developer | 88558 | 80501 | | |
| C++ Developer | 84019 | 82570 | | |
| Ruby Developer | 44259 | 82842 | | |
| PHP Developer | 51878 | 64146 | | |
| HTML5 Developer | 37813 | 81441 | | |
| Objective C Developer | 47869 | 66358 | | |
| Android Developer | 49783 | 66979 | | |
| IOS Developer | 57419 | 74844 | | |
+-----------------------+--------+---------+ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment