python3爬取拉钩招聘数据
使用python爬去拉钩数据
第一步:下载所需模块
requests 进入cmd命令 :pip install requests 回车 联网自动下载
xlwt 进入cmd命令 :pip install xlwt 回车 联网自动下载
第二步:找到你要爬去的网页(我爬去的是拉钩网)
选择浏览器 (火狐、谷歌)我使用的谷歌抓包
编码工具 (idea)( pyCharm)我使用的idea
import requests #导入下载过的requesta import xlwt #导入下载过的xlwt #用谷歌找到对应的网页,按f12进入检查
#NetWork,XHR里面有一个headers里面找
headers={ #第一个电脑和服务器信息, 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',#电脑和服务器信息 #第二个是你从哪里进入的拉钩网,没有这个以为是机器人访问。 'Referer':'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=', #第三个为了辨别身份,有的网站需要,有的不需要 'Cookie':'user_trace_token=20170921093258-cc8e4c13-9e6c-11e7-9d07-525400f775ce; LGUID=20170921093258-cc8e52b6-9e6c-11e7-9d07-525400f775ce; index_location_city=%E5%85%A8%E5%9B%BD; JSESSIONID=ABAAABAACEBACDGD4C15CDA891A7242B76AA4F9B7450B8B; _gat=1; PRE_UTM=; PRE_HOST=www.sogou.com; PRE_SITE=https%3A%2F%2Fwww.sogou.com%2Flink%3Furl%3DhedJjaC291NlQquFD-D9iKfCABISWiMgDLW1Nx6fG3psqHL_zYlG_a3mlRzfPLR2; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2Fgongsi%2Fj75915.html; TG-TRACK-CODE=index_search; _gid=GA1.2.405703854.1505957562; _ga=GA1.2.1930895945.1505957562; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1505957579,1505957596,1505957630,1505969456; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1505969469; LGSID=20170921125112-7dcd03f6-9e88-11e7-9d2f-525400f775ce; LGRID=20170921125125-85aaed04-9e88-11e7-91fb-5254005c3644; SEARCH_ID=746090bf111a497aa55f7f1b8dabffd2'#来路,你是从哪个页面点入的 } #data对应的是分页pn为1就相当于第一页 def getJobList(page): data={ 'first':'false', 'pn': page, 'kd': 'python' } #发起一个post请求,指的当前网页的链接 res=requests.post('https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=' 'false&isSchoolJob=0',data=data,headers=headers) result=res.json()#将里面的数据以json格式展示类似于(key,value) jobs=result['content']['positionResult']['result'] #每个对应查找 return jobs#结果返回 excelTabel= xlwt.Workbook()#创建excel对象 sheet1=excelTabel.add_sheet('lagou',cell_overwrite_ok=True) sheet1.write(0,0,'公司名')#公司名 sheet1.write(0,1,'城市')#城市 sheet1.write(0,2,'地区')#地区 sheet1.write(0,3,'全职/简直')#全职/简直 sheet1.write(0,4,'薪资')#薪资 sheet1.write(0,5,'职位')#职位 sheet1.write(0,6,'工作年限')#工作年限 sheet1.write(0,7,'公司规模')#公司规模 sheet1.write(0,8,'学历')#学历 n=1 for page in range(1,31):#循环输出每一页 for job in getJobList(page=page): #下面的if判断可以加也可以不加 if '1-3'in job['workYear'] and '后端开发'in job['secondType'] and '本科'in job['education']: # and '朝阳区'in job['district'] sheet1.write(n,0,job['companyFullName'])#公司名 sheet1.write(n,1,job['city'])#城市 sheet1.write(n,2,job['district'])#地区 sheet1.write(n,3,job['jobNature'])#全职/简直 sheet1.write(n,4,job['salary'])#薪资 sheet1.write(n,5,job['secondType'])#职位 sheet1.write(n,6,job['workYear'])#工作年限 sheet1.write(n,7,job['companySize'])#公司规模 sheet1.write(n,8,job['education'])#学历 n+=1 #打印到wps的表格里面 excelTabel.save('lagou.xlsx')
其实准备好图片的单不知道怎么插入到上面,
但是复制上面代码可以爬取出数据然后再慢慢研究(headers里面的根据个人的不同来更换)
python3 :
输入和输出
str():函数返回一个用户易读的表达形式
str.format()替换输出语句中的{},跟其他字符串拼接
repr():产生一个解析器易读的表达形式
repr()函数可以转义字符串中的特殊字符
repr()的参数可以是python的任何对象
读和写文件
open(filename,mode)将会返回一个file对象
filename:变量是一个包含了你要访问的文件名得字符串
mode:决定了打开文件的模式,默认的是只读
f=open('c\foo.txt',w):
str=f.read()
print(str)
f.close():关闭打开的文件
f.readline():会从文件中读取单独的一行
f.readlines():返回文件中包含的所有行
f.write('aaaa'):将aaaa写入到文件中,然后返回写入的文件字符数
f.tell()返回当前对象所处的位置
f.seek():改变文件当前位置