python拉勾网的招聘信息

闲着没事,看一下招聘的信息,做个小小的案例,爬取一下
import requests
import csv



def getHeader():
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
'Referer': 'https://www.lagou.com/jobs/list_%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86?px=default&city=%E5%B9%BF%E5%B7%9E',
'Accept': 'application/json, text/javascript, */*; q=0.01'
}
return header

def lagou(page):
urls = 'https://www.lagou.com/jobs/list_%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86?city=北京&cl=false&fromSearch=true&labelWords=&suginput='
s = requests.Session()
# 获取搜索页的cookies
s.get(urls, headers=getHeader(), timeout=3)
# 为此次获取的cookies
cookie = s.cookies
#发送请求
url = 'https://www.lagou.com/jobs/positionAjax.json?city=北京&needAddtionalResult=false'
response = s.post(url=url,
data={
'first': 'true',
'pn': page,
'kd': '自动化测试工程师'
},
headers=getHeader(),
cookies=cookie,
timeout=5)
'''设一个空的列表'''
postitions ={}

for i in range(15):
city = response.json()['content']['positionResult']['result'][i]['city']
workContent = response.json()['content']['positionResult']['result'][i]['skillLables']
welfare = response.json()['content']['positionResult']['result'][i]['companyLabelList']
address = response.json()['content']['positionResult']['result'][i]['linestaion']
companyName = response.json()['content']['positionResult']['result'][i]['companyFullName']
companySize = response.json()['content']['positionResult']['result'][i]['companySize']
workYear = response.json()['content']['positionResult']['result'][i]['workYear']
salary = response.json()['content']['positionResult']['result'][i]['salary']
postition= {
'公司名称': companyName,
'城市':city,
'工作':workContent,
'福利':welfare,
'地址':address,
'公司人数':companySize,
'工作年限':workYear,
'薪资':salary
}
postitions.append(postition)

return postitions




def writeCsv():

csv_Header = ["公司名称",'公司人数','工作年限', '工作', '福利','城市','薪资','地址']
for item in range(1,31):
lists=lagou(item)
# print(lists)
with open('lagou.csv','a',newline='',encoding='gbk') as f:
writer=csv.DictWriter(f,csv_Header)
writer.writeheader()
writer.writerows(lists)



writeCsv()

import requests
import csv
url = 'https://www.lagou.com/jobs/positionAjax.json?city=北京&needAddtionalResult=false'


def getHeader():
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
'Referer': 'https://www.lagou.com/jobs/list_%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86?px=default&city=%E5%B9%BF%E5%B7%9E',
'Accept': 'application/json, text/javascript, */*; q=0.01'
}
return header

def lagou(page):
urls = 'https://www.lagou.com/jobs/list_%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86?city=北京&cl=false&fromSearch=true&labelWords=&suginput='
s = requests.Session()
# 获取搜索页的cookies
s.get(urls, headers=getHeader(), timeout=3)
# 为此次获取的cookies
cookie = s.cookies
# 获取此次文本
response = s.post(url, data={
'first': 'true',
'pn': page,
'kd': '自动化测试工程师'
},
headers=getHeader(), cookies=cookie, timeout=5)
postitions =[]
for i in range(15):
city = response.json()['content']['positionResult']['result'][i]['city']
work = response.json()['content']['positionResult']['result'][i]['skillLables']
fuli = response.json()['content']['positionResult']['result'][i]['companyLabelList']
address = response.json()['content']['positionResult']['result'][i]['linestaion']
companyName = response.json()['content']['positionResult']['result'][i]['companyFullName']
companySize = response.json()['content']['positionResult']['result'][i]['companySize']
workYear = response.json()['content']['positionResult']['result'][i]['workYear']
salary = response.json()['content']['positionResult']['result'][i]['salary']
postition= {
'公司名称': companyName,
'城市':city,
'工作':work,
'福利':fuli,
'地址':address,
'公司人数':companySize,
'工作年限':workYear,
'薪资':salary
}
postitions.append(postition)

return postitions




def WriteCsv():

csv_Header = ["公司名称",'公司人数','工作年限', '工作', '福利','城市','薪资','地址']
for item in range(1,31):
lists=lagou(item)
# print(lists)
with open('lagou.csv','a',newline='',encoding='gbk') as f:
writer=csv.DictWriter(f,csv_Header)
writer.writeheader()
writer.writerows(lists)



WriteCsv()
posted @ 2019-12-03 18:04  Lt灬灬  阅读(65)  评论(0)    收藏  举报