优主张 2018-05-19
时光一去永不回,往事只能回味,忆童年时竹马青梅。
还记得她一起和我上的初中,一起上的高中,最后又在一起上了大学。那是一件令人回忆的时光,我不是在说爱情故事,这叫友情岁月!
我以前也很用功读书,所以我们一直能够在一块上学。然而进入大学后(电子信息工程),我堕落了。每日每夜的打电脑游戏,而她在我们C语言导师的提议下学习了Python编程,在这里不得不赞扬,我们的C语言导师的眼光非常准!
是的,去年我们大学毕业后,Python就是所有编程语言中最火热的一门编程语言了。然而当时的她在导师的提一下格外的用心去学习了Python,甚至花费了一些金钱代价,在这里我就多提了。
而我,看到了Python就业的风口,也许是有着良好的学习基础,在自己自学的情况下,四处碰壁求职,最后在她的帮助下也拿到了5K左右的工资。
Python是很火,但是由于刚火不久,就业的机会并不多,并且本人的专业技能那叫一个。。。。。。坎坷的往事,不多提了,而她,利用Python爬虫,爬取各种招聘网站,归纳进行数据分析谋得了一份好的职位,薪水当然和我是天壤之别了!后来也是她带我进去了,我才有机会进行更好的Python学习,提升自己,提高自己的身价!
这是最近的Python薪水调查,你看了就知道Python是有多强大,多少人想抓住风口!
我首先分享一下Python爬取招聘网页的源码,不然所有人光听我一个无名小卒回忆往事,我自己都自惭形秽了。
#-*- coding: utf-8 -*-
import re
import csv
import requests
from tqdm import tqdm
from urllib.parse import urlencode
from requests.exceptions import RequestException
def get_one_page(city, keyword, region, page):
'''
获取网页html内容并返回
'''
paras = {
'jl': city, # 搜索城市
'kw': keyword, # 搜索关键词
'isadv': 0, # 是否打开更详细搜索选项
'isfilter': 1, # 是否对结果过滤
'p': page, # 页数
're': region # region的缩写,地区,2005代表海淀
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
'Host': 'sou.zhaopin.com',
'Referer': '网址',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'zh-CN,zh;q=0.9'
}
url = '网址/jobs/searchresult.ashx?' + urlencode(paras)
try:
# 获取网页内容,返回html数据
response = requests.get(url, headers=headers)
# 通过状态码判断是否获取成功
if response.status_code == 200:
return response.text
return None
except RequestException as e:
return None
def parse_one_page(html):
'''
解析HTML代码,提取有用信息并返回
'''
# 正则表达式进行解析
pattern = re.compile('<a style=.*? target="_blank">(.*?)</a>.*?' # 匹配职位信息
'<td class="gsmc"><a href="(.*?)" target="_blank">(.*?)</a>.*?' # 匹配公司网址和公司名称
'<td class="zwyx">(.*?)</td>', re.S) # 匹配月薪
# 匹配所有符合条件的内容
items = re.findall(pattern, html)
for item in items:
job_name = item[0]
job_name = job_name.replace('<b>', '')
job_name = job_name.replace('</b>', '')
yield {
'job': job_name,
'website': item[1],
'company': item[2],
'salary': item[3]
}
def write_csv_file(path, headers, rows):
'''
将表头和行写入csv文件
'''
# 加入encoding防止中文写入报错
# newline参数防止每写入一行都多一个空行
with open(path, 'a', encoding='gb18030', newline='') as f:
f_csv = csv.DictWriter(f, headers)
f_csv.writeheader()
f_csv.writerows(rows)
def write_csv_headers(path, headers):
'''
写入表头
'''
with open(path, 'a', encoding='gb18030', newline='') as f:
f_csv = csv.DictWriter(f, headers)
f_csv.writeheader()
def write_csv_rows(path, headers, rows):
'''
写入行
'''
with open(path, 'a', encoding='gb18030', newline='') as f:
f_csv = csv.DictWriter(f, headers)
f_csv.writerows(rows)
def main(city, keyword, region, pages):
'''
主函数
'''
filename = 'zl_' + city + '_' + keyword + '.csv'
headers = ['job', 'website', 'company', 'salary']
write_csv_headers(filename, headers)
for i in tqdm(range(pages)):
'''
获取该页中所有职位信息,写入csv文件
'''
jobs = []
html = get_one_page(city, keyword, region, i)
items = parse_one_page(html)
for item in items:
jobs.append(item)
write_csv_rows(filename, headers, jobs)
if __name__ == '__main__':
main('北京', 'python工程师', 2015, 10)
利用上述Python代码爬取到的工作信息,月薪区间在于8K-30K之间:
都是正经人,不需要装假斯文。我们谁不想让自己的薪水高一点?作为一个Python工程师-实习生的月薪在2000-4000之间,如果那个实习生是你,你觉得是否过分呢?在学校学了3-4年,出来的第一份工作拿着那么点薪水,总之我是觉得很惋惜!
我相信,想去找工作的肯定是都有真本事傍身的,就算你不是很牛逼,也不是那点薪水能够满足的,那么我们该如何提高自己的薪水?
我听过一个笑话,那个笑话还是本人的老师曾经跟我说的。他说:“如果你们出去工作了,别提我的名字,反正不管用,不能给你的收入提高一个档次,你不如直接说你有两、三年开发经验!”
你们觉得这个是笑话吗?有些Python程序员可能性格比较耿直,但是我告诉你,这个时候千万不能耿直,薪水差距有5K,然而他们的Python技术差不多的比比皆是,为什么你不是你拿大头呢?
当然,如果你确实没本事,那就另当别论了。没本事,不是什么丢脸的事,我们每个Python程序员都是从print(“hello world”)开始写程序的!然而怕就怕那种没本事,还不能静下心去学习的人。对此我不想多灌输所谓的心灵鸡汤了,我知道,多说无益!
人若无名,专心练剑。
码字不易,喜欢小编,请点关注!