摘要:網(wǎng)頁(yè)源碼解析智聯(lián)招聘搜索列表一開(kāi)始必須要解析智聯(lián)招聘搜索列表頁(yè),從這里更方便實(shí)現(xiàn)各種深層級(jí)數(shù)據(jù)抓取。顯示不同源碼也不同,盡量選列表模式,源碼更好解析。
網(wǎng)頁(yè)源碼解析 - 智聯(lián)招聘搜索列表
一開(kāi)始必須要解析智聯(lián)招聘搜索列表頁(yè),從這里更方便實(shí)現(xiàn)各種深層級(jí)數(shù)據(jù)抓取。
網(wǎng)頁(yè)地址是:
http://sou.zhaopin.com/jobs/searchresult.ashx
智聯(lián)招聘的服務(wù)器只接收Get方式,如果用Post方式抓取頁(yè)面,則不會(huì)返回想要的招聘信息,而會(huì)得到一堆廣告。
下面是我手動(dòng)測(cè)試的一些智聯(lián)在這個(gè)頁(yè)面Get方式傳遞的搜索參數(shù),也是目前最常用的(注釋掉的不怎么常用):
data_filter = { "kw" : keyword, # 搜索關(guān)鍵詞 "sm" : "0", # 顯示方式代碼: 列表是"0",詳細(xì)是"1"。顯示不同源碼也不同,盡量選列表模式,源碼更好解析。 "jl" : "北京", # 搜索城市:"北京",多項(xiàng)用"+"連接(URL編碼為%2B) #"bj" : "", # 職位類別代碼:互聯(lián)網(wǎng)產(chǎn)品/運(yùn)營(yíng)管理 的代碼為 "160200",多項(xiàng)用"%3B"連接(URL編碼的%) #"in" : "", # 行業(yè)代碼:多項(xiàng)用";"連接(URL編碼為%3B) "kt" : "0", # 關(guān)鍵詞搜索范圍:全文"0" | 公司名"1" | 職位名"2" "isadv" : "0", # 是否高級(jí)搜索:快速搜索"0" | 高級(jí)搜索"1" # "isfilter" : "1", # 是不是篩選器: "0" | "1" # "ispts" : "", # 通常為 "1" #"sj" : "", # 職位子類別代碼: # "gc" : "5號(hào)", # 地鐵線路: "5號(hào)" # "ga" : "立水橋", # 地名或地鐵站名: "天通苑南" 、 "小湯山" # "sb" : "0", # 排序方式代碼:默認(rèn)排序是"0",相關(guān)度排序是"1", 首發(fā)日排序是"2" #"fjt" : "10000", # 職位標(biāo)簽 五險(xiǎn)一金"10000" 年底雙薪"10001" 績(jī)效獎(jiǎng)金"10002" 等等 # "sf" : "-1", # 月薪底線:"8001" 不限是"-1" # "st" : "-1", # 月薪上限:"10000" 不限是"-1" # "ct" : "-1", # 公司性質(zhì)代碼 # "el" : "-1", # 學(xué)歷代碼 # "we" : "-1", # 工作經(jīng)驗(yàn)代碼 # "et" : "-1", # 職位類型代碼:兼職"1" 全職"2" 實(shí)習(xí)"4" # "pd" : "-1", # 發(fā)布時(shí)間(天數(shù)):一周是"7",一個(gè)月是"30",不限是"-1" "p" : page, # 頁(yè)碼,超出總頁(yè)碼時(shí),則會(huì)顯示最后一頁(yè) #"gr" : "", # # "re" : "2015", # 這個(gè)限制了搜素?cái)?shù)量,但是其實(shí)也不是按年份搜索 "sg" : guid, # 即全網(wǎng)唯一標(biāo)示符——GUID #"" : "" # }
它在python中的用法,就是通過(guò)urllib.urlencode()來(lái)轉(zhuǎn)成URL參數(shù)格式,并提交。
網(wǎng)頁(yè)源碼解析 - “列表模式”如果解析“列表模式”的智聯(lián)招聘網(wǎng)頁(yè),需要在Get參數(shù)里面的sm設(shè)為0。
里面唯一需要的就是中間的結(jié)果列表部分,
即id為"newlist_list_content_table"的DIV用,源碼如下:
一條招聘信息
一條招聘信息
其中會(huì)循環(huán)輸出class為newlist的Table表格
即一條一條的招聘信息。
每一條招聘信息的源碼如下:
87% | 中海軟銀投資管理有限公司 | 面議 | 北京 | 12-10 |
在“列表”模式中,每一條記錄采用了Table格式,第一個(gè)TR是簡(jiǎn)述信息,第二個(gè)TR是擴(kuò)展信息。簡(jiǎn)述信息中,每個(gè)信息都有固定Class屬性,而且是非空信息,是肯定能獲取到的。而擴(kuò)展信息中,規(guī)則性不強(qiáng),只能用“公司性質(zhì):xx”這樣的正則表達(dá)式來(lái)匹配或是用tag的嵌套層級(jí)和順序來(lái)定位,成功率和穩(wěn)定性都不高。
總結(jié)一下,這里的主要定位方式為:
職位名稱: class = "zwmc"
反饋率 : class = "fk_lv"
公司名稱: class = "gsmc"
職位月薪: class = "zwyx" 或 職位月薪:xx
工作地點(diǎn): class = "gzdd" 或 地點(diǎn):xx
更新時(shí)間: class = "gxsj" 或 12-10
公司性質(zhì): 公司性質(zhì):xx
公司規(guī)模: 公司規(guī)模:xx
學(xué)歷要求: 學(xué)歷:xx
崗位職責(zé):
其實(shí)還有tag的嵌套層級(jí)和順序,可以用來(lái)定位信息。但是我不想這么做,因?yàn)檫@個(gè)太不穩(wěn)定了,而且大大的增加了代碼的長(zhǎng)度,如果不存在信息還會(huì)導(dǎo)致報(bào)錯(cuò)。相比而言,用中文的人能理解的語(yǔ)言來(lái)進(jìn)行正則匹配,更有成功率,且更容易操作。
網(wǎng)頁(yè)源碼解析 - “詳細(xì)模式”如果解析“詳細(xì)模式”的智聯(lián)招聘網(wǎng)頁(yè),需要在Get參數(shù)里面的sm設(shè)為1。
里面唯一需要的就是中間的結(jié)果列表部分,
即id為"newlist_list_content_table"的DIV用,源碼如下:
一條招聘信息一條招聘信息
其中會(huì)循環(huán)輸出class為newlist_detail newlist的子DIV層
即一條一條的招聘信息。
每一條招聘信息的源碼如下:
- 樂(lè)視網(wǎng)信息技術(shù)(北京)股份有限公司
- 地點(diǎn):北京 公司性質(zhì):上市公司 公司規(guī)模:1000-9999人 學(xué)歷:本科
- 崗位職責(zé): 1、負(fù)責(zé)對(duì)日常行政后勤工作(包括名片、加班餐、辦公用品、員工離入職、印章、會(huì)議室的相關(guān)事宜)進(jìn)行全面的監(jiān)督控制,發(fā)現(xiàn)問(wèn)題及時(shí)予以規(guī)范,協(xié)助上級(jí)領(lǐng)導(dǎo)應(yīng)對(duì)處理突發(fā)事件; 2、進(jìn)行行政后勤各項(xiàng)費(fèi)用預(yù)算,嚴(yán)格管控各項(xiàng)費(fèi)用的使用情況,節(jié)省公司成本,實(shí)現(xiàn)效益的最大化; 3、部門員工的招聘與培養(yǎng)和...
在源碼上,雖然“詳細(xì)模式”的解析和“列表模式”有很大的不同,幾個(gè)信息的抓取方式不一樣,但是卻可以共用。如有的是按照class名,有的是按照tag名等。但是這不影響兩種模式放在一起解析——為每一個(gè)信息元素如“月薪”、“公司名稱”等,設(shè)置多種搜索方式。在寫代碼時(shí),只要分別檢索多種方式就可以獲得數(shù)據(jù)。具體參考抓取代碼的實(shí)現(xiàn)。
獲取搜索結(jié)果數(shù)量雖然每頁(yè)只能顯示40條信息,但是在頁(yè)面上方還是會(huì)顯示一共有多少條搜索結(jié)果。如“”
代碼如下:
共2025個(gè)職位滿足條件
獲取GUID——全局唯一標(biāo)識(shí)符
雖然沒(méi)有研究過(guò)GUID,但是我看到智聯(lián)招聘的網(wǎng)頁(yè)會(huì)在URL中顯示的調(diào)用,參數(shù)名為sg。
不知道它對(duì)爬蟲(chóng)有什么影響。不過(guò)我還是嘗試著獲取了一下,很簡(jiǎn)單直接用id搜索input標(biāo)簽的value就行。網(wǎng)頁(yè)源碼如下:
智聯(lián)招聘這個(gè)頁(yè)面最逗的是,如果當(dāng)前信息只有4頁(yè),那么及時(shí)url參數(shù)中頁(yè)碼指定100,它仍然不會(huì)自動(dòng)跳轉(zhuǎn)。所以從url或者.geturl()來(lái)判斷當(dāng)前真實(shí)頁(yè)碼也就成了不對(duì)了。
不過(guò)好在一點(diǎn),這個(gè)頁(yè)面下方的頁(yè)碼控制欄中可以清楚的看到當(dāng)前頁(yè)碼是多少,所以就從這里入手。這部分網(wǎng)頁(yè)源碼如下:
從中可以看到,當(dāng)前頁(yè)碼的定位極其方便,只要從class="pagesDown"的div中找到class="current"的a鏈接就得到了。
同理,下一頁(yè)的鏈接可以找class="next-page"的a標(biāo)簽獲取href值。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/37663.html
摘要:網(wǎng)頁(yè)源碼解析智聯(lián)招聘信息頁(yè)面根據(jù)招聘列表里面跳轉(zhuǎn)過(guò)來(lái)的詳細(xì)招聘信息頁(yè)面。巨優(yōu)信息是法國(guó)阿爾卡特朗訊公司企業(yè)通信系統(tǒng)全國(guó)金牌代理商,同時(shí)也是華為思科等國(guó)際知名品牌的核心合作伙伴。主頁(yè)是智聯(lián)招聘里唯一能夠讓企業(yè)自己定制的頁(yè)面了。 網(wǎng)頁(yè)源碼解析 - 智聯(lián)招聘信息頁(yè)面 根據(jù)招聘列表里面跳轉(zhuǎn)過(guò)來(lái)的詳細(xì)招聘信息頁(yè)面。爬蟲(chóng)再根據(jù)這里進(jìn)行關(guān)鍵信息提取。相比于搜索列表頁(yè)來(lái)說(shuō),這頁(yè)內(nèi)容很簡(jiǎn)單,而我們需要的...
摘要:之前接了一個(gè)活,做的功能是從智聯(lián)招聘爬取招聘信息賺了幾百塊零花錢實(shí)現(xiàn)了一個(gè),如圖雖然比較丑,但是簡(jiǎn)潔明了,落落大方已經(jīng)是我水平的天花板了具體功能說(shuō)明就不了,大家都能看懂的。。。。智聯(lián)招聘鏈接網(wǎng)頁(yè)是這個(gè)樣子的,反爬蟲(chóng)不強(qiáng)。 之前接了一個(gè)活,做的功能是從智聯(lián)招聘爬取招聘信息賺了幾百塊零花錢實(shí)現(xiàn)了一個(gè)GUI,如圖:showImg(https://segmentfault.com/img/bV...
摘要:智聯(lián)其實(shí)一共寫了兩次,有興趣的可以在源碼看看,第一版的是回調(diào)版,只能一次一頁(yè)的爬取。 寫在前面的話, .......還是不寫了,直接上效果圖。附上源碼地址 github.lonhon showImg(https://segmentfault.com/img/bVUM3F?w=714&h=543);showImg(https://segmentfault.com/img/bVUM...
摘要:年月日爬取,爬蟲(chóng)代碼不知道是否失效文章目錄爬蟲(chóng)目標(biāo)具體過(guò)程源碼爬蟲(chóng)目標(biāo)要求搜索大數(shù)據(jù)專業(yè),爬相關(guān)公司的招聘信息。 2021年10月7日爬取,爬蟲(chóng)代碼不知道是否失效 ...
閱讀 3892·2021-09-23 11:51
閱讀 3071·2021-09-22 15:59
閱讀 873·2021-09-09 11:37
閱讀 2074·2021-09-08 09:45
閱讀 1269·2019-08-30 15:54
閱讀 2068·2019-08-30 15:53
閱讀 494·2019-08-29 12:12
閱讀 3292·2019-08-29 11:15