1. 程式人生 > >【爬蟲入門】【Json】爬取智聯招聘

【爬蟲入門】【Json】爬取智聯招聘

爬蟲中也會經常會遇到以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))