import requests
from bs4 import BeautifulSoup
import pandas as pd
from pandas import DataFrame,Series
import json
url="https://fe-api.zhaopin.com/c/i/sou"
params={ #参数
'start': '90',
'pageSize': '90',
'cityId': '489',
'workExperience': '-1',
'education': '-1',
'companyType': '-1',
'employmentType': '-1',
'jobWelfareTag': '-1',
'kw': 'python',
'kt': '3',
}
headers={ #头部信息
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
}
url1="https://jobs.zhaopin.com/%s.htm"
class Spider():
def __init__(self):
self.word=input("请输入关键词:")
page=input("请输入页数:")
#self.word='python'
#page=2
params['kw']=self.word #更改请求的关键词
self.df=DataFrame() #创建一个DataFrame对象
self.columns=['职位名称','工资','更新时间','地点','公司名称','需求人数','学历','工作经验','职责'] #列名
for i in range(0,int(page)*90,90):
print(i)
params['start']=i #更改开始页的页数
try:
r=requests.get(url,params=params,headers=headers,timeout=10) #请求数据,加上try except防止请求失败程序停止
except:
continue
r.encoding='utf-8' #更改编码格式
self.get_data(r.text) #调用函数,函数是爬去数据,上面的所有都是用来请求的,这个函数才是解析请求返回来的数据的
def get_data(self,text):
js=json.loads(text)
for i in js['data']['results']:
idd=i['number'] #id
title=i['jobName'] #职位名称
#print(title)
salary=i['salary'] #工资
updateDate=i['updateDate'] #更新时间
place=i['city']['display'] #工作地点
company=i['company']['name'] #公司名称
recruitCount=i['recruitCount'] #需求人数
eduLevel=i['eduLevel']['name'] #学历
workingExp=i['workingExp']['name'] #工作经验
u1=url1%idd #更改详情页的url,
zhize=self.get_zhize(u1) #调用这个函数是为了爬取详情页页面的职责的
data=[title,salary,updateDate,place,company,recruitCount,eduLevel,workingExp,zhize] #所有的字段都整理成一个列表
self.df=self.df.append(Series(data,index=self.columns),ignore_index=True) #添加进入dataframe的数据结构中
print(title)
self.df.to_csv('%s.csv'%self.word) #保存数据
def get_zhize(self,link):
try:
r=requests.get(link,headers=headers,timeout=10) #请求详情页
except:
return "暂无"
r.encoding='utf-8' #更改编码
soup=BeautifulSoup(r.text,'lxml') #解析数据
text=soup.select('div.describtion__detail-content')[0].text.strip() #职责
return text
if __name__=="__main__":
Spider()
智联招聘爬虫
最新推荐文章于 2024-08-02 09:46:03 发布