1. 程式人生 > >爬蟲 智聯招聘

爬蟲 智聯招聘

1,原理

  通過Python的requests庫,向網站伺服器傳送請求,伺服器返回相關網頁的原始碼,再通過正則表示式等方式在網頁原始碼中提取出我們想要的資訊。

 

2,網頁分析

 

 

  通過對網址分析,kw=投資經理和搜尋欄的收縮內容一樣,sf=2001&st=4000和選擇工資2k-4k有一定的關係,we=0001和工資經驗一年以下。我們看network -XHR中的Query String Parameters中對應的工資等等都有一定關聯。

我們看到網頁的一些招聘資訊在Preview中的results中一 一對應。

 

import csv
from pandas import json
import requests

fp = open('智聯招聘.csv', 'wt', newline='', encoding='UTF-8')
writer = csv.writer(fp)
writer.writerow(('職位', '薪資', '學歷','工作經驗', '公司','公司人數', '地區', '福利', '連結'))

def geturl(city, keyword,working,education,companyType,page):
paras = {
'start': '-1',
'pageSize': page,
'cityId': city,
'workExperience': working,
'education': education,
'companyType': companyType,
'employmentType': '-1',
'jobWelfareTag': '-1',
'kw': keyword,
'kt': '3',
'_v': '0.93300214',
'x-zp-page-request-id': '6bda060a5be94fe5becd5af3465c33c4-1544103273892-946749'
}
url = 'https://fe-api.zhaopin.com/c/i/sou'
result = json.loads(requests.get(url, params=paras).text)

return result

def get_data(result):
for item in result['data']['results']:
jobname = item['jobName']
companyname = item['company']['name']
companynumber = item['company']['size']['name']
xueli = item['eduLevel']['name']
salary = item['salary']
didian = item['city']['display']
workingExp = item['workingExp']['name']
url = item['positionURL']
fuli = item['welfare']
writer.writerow((jobname,salary,xueli,workingExp,companyname,companynumber,didian,fuli,url))


if __name__ == '__main__':

city = input("請輸入工作的城市:")
keyword = input("請輸入你要找的工作:")
working = input('工作經驗:')
companyType = input('公司型別:')
education = input('學歷要求:')
tatol = eval(input("共需查詢幾條符合條件的資訊:"))
result = geturl(city,keyword,working,education,companyType,tatol)
get_data(result)