現在Python爬蟲工程師的薪資大概多少啊?
熟悉前端、資料庫,懂點基本的linux
會各種庫爬、解析取頁面,會數據存儲,會ajax數據爬取,會selenium,會驗證碼識別,會使用代理,會模擬登錄,會APP爬取,會pyspider、scrapy,會分散式爬蟲。做過的比較大的項目是12306搶票項目
只是針對問題描述哈:
熟悉前端,熟悉HTML,HTTP,js...等等是基本功
資料庫會數據存儲,持久化方面,無論HDFS、HBASE、mysql 、mongoDB,這都是基本功
會各種庫爬,比如request,urllib請求,會請求是一回事,玩的溜的又是一回事
解析取頁面,無論 正則、xpath、bs。。 不會那玩個屁啊
會ajax數據爬取, 調研的時候首先看是否有api是習慣。
會selenium,什麼程度?現在阿里系的網站,通過selenium一打開頁面就被識別為爬蟲
會驗證碼識別,簡單的用tenseract這個庫,還是走打碼平台?還是自己做訓練集來通過機器學習來解決,那麼驗證碼中帶斜線的問題解決沒?這個要用神經網路去搞,另外都能玩神經網路了還搞什麼爬蟲啊?另外,滑動驗證碼呢?點擊文字驗證呢?自定義語序點擊文字驗證呢?
會使用代理,呃,生產環境中,至少對於我,每一次請求都是一個新ip去完成的。
會模擬登錄,代碼模擬登錄淘寶試試?其中有個欄位每天都是新的,能搞定那就沒問題了,簡單點就桌面端微博。登錄豆瓣就不說了,通過selenium登錄,那就回到上上上一個問題,登錄阿里系的試試,不通過掃二維碼。
會app爬取,和桌面端一樣,通過抓包,因為移動端設備性能問題反而反爬蟲還少,另外如果app上cdn怎麼辦。
會pyspider,你確定?
會scrapy,基本功。
會分散式爬蟲,我用redis實現一個消息隊列,我也說我會分散式。
題主做過12306搶票,在github上面這樣的項目可多了。
如果題主是對平台化有建樹,對selenium理解的很深刻,對scrapy玩的特溜,在反反爬蟲上也是能剛大眾點評、汽車之家、攜程之類的,那答主你就是高級咯,身價自然水漲船高。
另外,都是just so so, 那我就不說什麼了。
========================分割線===========================
說到正題,爬蟲薪資,看公司咯。
答主在成都,成都爬蟲的上限就是美團的20k起
也有二貨公司要求懂爬蟲+ETL 起薪8k
一般金融公司給8-12k + 2年以上的經驗
玩大數據的公司給10-20k + 2年以上經驗
。。。。。。。等等等等
去了重慶工資更低。
北京的工資高啊,經常在拉鉤上看的流口水,可我也不會去北漂,只能含恨了
本文爬取了某直聘網站上Python和Java的招聘信息,比較了兩個方向的發展前(錢)途 ,為本科生的就業方向給一個小小的建議。
爬取
在招聘網站上直接以」本科生」和」Java」或」Python」作為篩選條件,以廣州為例:
爬取招聘的大體信息,具體代碼如下:
1from bs4 import BeautifulSoup
2import requests
3import pymongo
4
5client = pymongo.MongoClient(localhost, 27017)
6zhipin = client[zhipin]
7zhipin_java = zhipin[zhipin_java]
8zhipin_python = zhipin[zhipin_python]
9
10
11headers = {
12 user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36,
13 accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,
14}
15
16total_page = 11
17
18
19def get_info(param, data_table):
20
21 根據招聘方向(java或python..)爬取信息存進資料庫
22 :param param: 招聘方向
23 :param data_table: 資料庫表明
24 :return:
25
26 for i in range(1, total_page):
27 url = https://www.zhipin.com/c101280100/d_203-h_101280100/?query={0}page={1}.format(
28 param, i)
29 web_data = requests.get(url, headers=headers)
30 soup = BeautifulSoup(web_data.content, lxml)
31 for item in soup.select(#main &> div &> div.job-list &> ul &> li):
32 # 招聘要求
33 job_title = item.select(.job-title)[0].text # 崗位
34 salary = item.select(.red)[0].text # 薪資
35 person_info = item.select(.info-primary p)[0].text # 應聘要求
36 # 獲取公司信息
37 company = item.select(.info-company h3 a)[0].text # 公司
38 company_info = item.select(.info-company p)[0].text # 公司信息
39
40 data = {
41 job_title: job_title,
42 salary: salary,
43 person_info: person_info,
44 company: company,
45 company_info: company_info,
46 }
47 # 插入資料庫
48 data_table.insert(data)
49 print(data)
50 print(* * 100)
51 print(
* 5)
52
53
54if __name__ == __main__:
55 param_list = [java, python]
56 table_list = [zhipin_java, zhipin_python]
57 for param, table in zip(param_list, table_list):
58 get_info(param, table)
爬取的信息全部存在MongoDB中,便於後面的分析處理。
數據清洗
在數據處理這裡定義了幾個方法,用來處理相應的內容。
- 初始變數
1import pymongo
2client = pymongo.MongoClient(localhost, 27017)
3zhipin = client[zhipin]
4zhipin_java = zhipin[zhipin_java]
5zhipin_python = zhipin[zhipin_python]
6
7from collections import Counter
8from pyecharts import Bar,Line,Pie
- 獲取地區分布情況
1import re
2def get_zone():
3 獲取地區
4 zone_list = []
5 real_list = []
6 for item in zhipin_java.find():
7 text = item[person_info][3:6]
8 zone_list.append(text)
9 for i in zone_list:
10 j = re.sub(r d-,,i)
11 real_list.append(j)
12 while in real_list:
13 real_list.remove()
14 return real_list
15zone = dict(Counter(get_zone()))
- 整理招聘數據
1def del_key_1():
2 刪除招聘次數為1的崗位
3 li = []
4 for key in job_dict.keys():
5 if job_dict[key] == 1:
6 li.append(key)
7 for i in li:
8 del job_dict[i]
9 print(job_dict)
- 整理薪水數據
1def get_salary():
2 獲取招聘的工資
3 min_list = [] #起步工資
4 max_list = [] #最高工資
5 job_title = [] #崗位
6 for item in zhipin_java.find():
7 job_title.append(item[job_title])
8 salary = item[salary]
9 min_list.append(int(salary.split(-)[0][:-1]))
10 max_list.append(int(salary.split(-)[1][:-1]))
11 return min_list,max_list,job_title
數據可視化
通過整理地區分布數據,利用pyecharts作圖。分別以下面4個方面進行比較:地區分布、崗位情況、公司情況和薪水對比。
1、不同區的招聘情況:
不難看出,越靠近城市中心的地區,招聘的崗位就越多,成功應聘的機會較高;番禺和天河區相差較大,其中天河區招的Python比Java將近多了8倍;番禺區Java比Python更加熱門,受公司青睞;其他區相差不大。
2、崗位情況
Python崗位情況:
Python崗位佔比:
佔比前五位分別是:Python工程師、數據分析師、運維工程師、大數據開發工程師和遊戲AI演算法工程師。
Java崗位情況:
高級工程師招聘的人數較少,大部分都是在招聘初中級工程師,難道這就是傳說中的「一個諸葛亮勝過三個臭皮匠」?
3、公司情況
Python招聘公司情況:
Java招聘公司情況:
4、Qian途對比
最高薪水對比:
看來Python的地位不是吹的,最高薪水也大多數都比Java的高。Java最高薪水平平均為19.24K,最低3K,最高60K;Python最高薪水平均為21.16K,最低也是3K,最高50K,比Java稍低一點。
最低薪水對比:
Python起步薪水大多數都比Java的高。Java平均起步薪水11.42K,Python平均起步薪水12.08K。
最後用兩個崗位的詞雲來看一下:
看了這麼多,該怎麼選,你懂了吧? 雖然有點以偏概全,但是我相信只要能夠在一個語言上做到極致,相信你的Qian途同樣會是一片光明的。另外希望秋招的同學都能夠找到一份好工作。
作者:Don Lex,在校大學生,正在發育並且渴望成為一個有技術、有情懷的coder。個人公眾號 Python綠洲。
聲明:本文為作者投稿至CSDN,版權歸對方所有。
可以做個參考,當然薪資高低還要看你技術,我們這個是一個技術工種
爬蟲只是數據收集的手段,不知目的,數據手機是數理統計的步驟。爬蟲爬來的信息有個很大的問題是不具備授權性,企業做事這是沒有保險的玩法,連靠爬蟲吃飯的百度用戶條款里都有這麼一條
4.6本服務或第三人可提供與其它國際互聯網上之網站或資源之鏈接。由於百度無法控制這些網站及資源,您了解並同意,此類網站或資源是否可供利用,百度不予負責,存在或源於此類網站或資源之任何內容、廣告、產品或其它資料,百度亦不予保證或負責。因使用或依賴任何此類網站或資源發布的或經由此類網站或資源獲得的任何內容、商品或服務所產生的任何損害或損失,百度不承擔任何責任。
所以所以不要投入太多經歷,轉轉型吧,爬蟲的技能樹能點出與測試和後端
單獨問某個領域工資多少,其實是沒有統一答案的,你說北京的爬蟲工程師跟武漢肯定不一樣。
那麼如何判斷工資呢?其實很簡單,去各個招聘網站,選擇你所在的區域,然後找一些招聘要求跟您技能比較匹配的,然後看一下各家企業報價~
當然,如果您在面試過程中發揮較好,也可以適當地提價!
推薦閱讀: