【爬蟲入門】【Json】爬取智聯招聘
阿新 • • 發佈:2019-01-10
爬蟲中也會經常會遇到以JSON資料返回內容的網站,這種網站不再需要使用正則表示式匹配文字,直接分析網站是否含有介面返回JSON,如果有,直接使用json.load()對json字串進行解析就可以獲取資料。
# pip install requests:比較流行的第三方請求庫 #https://sou.zhaopin.com/?jl=489 import requests response = requests.get( 'https://fe-api.zhaopin.com/c/i/sou?pageSize=90&cityId=489&workExperience=-1&education=-1&companyType=-1&employmentType=-1&jobWelfareTag=-1&kw=Python&kt=3&_v=0.75128621&x-zp-page-request-id=7fb624a59a8f4d159eb1fed53c1456a0-1547017702231-449925') print(response) # 響應狀態碼:GET請求成功的響應碼的200;POST:成功狀態碼是201; # 400、401、403、404等以4開頭的狀態碼代表程式程式碼有問題 # 500、501、502、505等以5開頭的狀態碼代表網站的伺服器有問題,跟程式碼關係不大 json_str = response.text # json字串: """ { "code":200, "data":[ {"a":1}, {"a":1}, {"a":1} ] } """ import json # json_dict是最外層的字典,內部有兩個鍵值對 # code:200和data:{...} json_dict = json.loads(json_str) data_dict = json_dict['data'] results = data_dict['results'] for item_dict in results: city = item_dict['city']['display'] company = item_dict['company']['name'] edu = item_dict['eduLevel']['name'] job_name = item_dict['jobName'] job_type = item_dict['jobType']['display'] #';'.join():使用;字元將列表張的每一個元素拼接起來,得到一個字串 welfare = ';'.join(item_dict['welfare']) woekingExp=item_dict['workingExp']['name'] print('城市:{};公司名稱:{};學歷要求:{};招聘職位:{};職位型別:{};福利待遇:{};工作經驗:{}'.format(city,company,edu,job_name,job_type,welfare,woekingExp))