【爬虫基础】爬取学校官网分页招聘信息
用到的包
from urllib.request import urlopen import requests import json一、獲取不同頁面的url
在頁面點擊F12,通過network中獲取不同網頁的url,觀察區別
1st page:
Request URL: http://job.ustb.edu.cn/front/zp_query/zpxxQuery.jspa?paramMap.xxlx=2%2C3&page.curPage=1¶mMap.gzcs=¶mMap.dwhydm=¶mMap.dwxzdm=¶mMap.dwmc=
2nd page:
http://job.ustb.edu.cn/front/zp_query/zpxxQuery.jspa?paramMap.xxlx=2%2C3&page.curPage=2¶mMap.gzcs=¶mMap.dwhydm=¶mMap.dwxzdm=¶mMap.dwmc=
3nd page:
Request URL: http://job.ustb.edu.cn/front/zp_query/zpxxQuery.jspa?paramMap.xxlx=2%2C3&page.curPage=3¶mMap.gzcs=¶mMap.dwhydm=¶mMap.dwxzdm=¶mMap.dwmc=
發現每翻一頁 “curPage" 后的數字都增加1。
二、通過循環獲取頁碼
通過”+str(k)+“ 的方式把字符串和數字聯系起來
提取前9頁的信息
三、 獲取頁面中想要的信息
URL = "http://job.ustb.edu.cn/front/zp_query/zpxxQuery.jspa?paramMap.xxlx=1&page.curPage=1" html = requests.get(URL).text html = json.loads(html)#把json格式轉化成python對象注:需要將頁面的json格式轉換成python對象,才能進一步提取信息,否則會出錯
json.dumps()#把python對象轉化成json格式對象 json.loads()#把json格式轉化成python對象html解析后,顯示如下(有刪減):`
{'msg': 'Y','totalRecords': 27870,'pageCount': 1394,'curPage': 1,'data': [ {'click': 3,'createTime': 1582892950000,'dwmc': '中國郵政儲蓄銀行股份有限公司','dwszddm': '北京市','pp1Valid': 'N','pp2Valid': 'N','pp3Valid': 'N','pp4Valid': 'N','tid': '38093','title': '中國郵政儲蓄銀行 校招','updateTime': 1582893178000,'xqzwList': [],'zyCount': 0},{'click': 51,'createTime': 1582816968000,'dwmc': '北京市安全生產科學技術研究院','dwszddm': '北京市通州區','pp1Valid': 'N','pp2Valid': 'N','pp3Valid': 'N','pp4Valid': 'N','tid': '38078','updateTime': 1582816968000,'xqzwList': [{'hkyq': '1','id': 27973,'qyzt': 'Y','sftj': 'N','shzt': 'Y','wyspyq': '1','xbyq': '1','xqzw': '監測預警崗','xsgbjlyq': '1','yt': '1','zwlb': '1','zyxxList': []},{'hkyq': '1','id': 27972,'qyzt': 'Y','sftj': 'N','shzt': 'Y','wyspyq': '1','xbyq': '1','xqzw': '科研崗','xsgbjlyq': '1','yt': '1','zwlb': '1','zyxxList': []}],'zyCount': 0}],'zyCount': 0}],'showPageSize': 11,'beginPos': 1}`我們需要的信息是 公司名稱(”dwmc“),地點(”dwszddm“),職位信息(”zyxxList“)
可以看到有些公司有職位信息,有些沒有(通過if語句判斷);職位信息也可能不止一個(通過在字典中建list解決)。
巧的是,這里不同公司的各種信息代碼都一樣,如果不一樣,就要用到正則表達式。如公司名稱可能是dwmc,dwmb,dwmd等等…
四、開始寫代碼啦
完整代碼如下
lst = [] for k in range(1,10):URL = "http://job.ustb.edu.cn/front/zp_query/zpxxQuery.jspa?paramMap.xxlx=1&page.curPage="+str(k)+""html = requests.get(URL).texthtml = json.loads(html)for i in range(len(html["data"])): page = {}job = []page["公司名稱"] = (html["data"][i]["dwmc"])page["地點"]= (html["data"][i]["dwszddm"])if len(html["data"][i]["xqzwList"]) != 0:for j in range(len(html["data"][i]["xqzwList"])):job.append(html["data"][i]["xqzwList"][j]["xqzw"])page["職位名稱"] = joblst.append(page)爬蟲+python 小白,寫的羅里吧嗦勉強能爬出來,請大佬指正。
總結
以上是生活随笔為你收集整理的【爬虫基础】爬取学校官网分页招聘信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机组成原理——运算器思维导图
- 下一篇: C#Nlog配置文件 万能模板 输出到控