一键爬取前程无忧51job招聘网,从此毕设数据不用愁

此次爬取代码以关键词开发工程师为例,爬取无筛选范围内的岗位数据:

在这里插入图片描述
在这里插入图片描述
查看网页源码:通过对网站发送申请,获取响应数据,进行网页分析,确定数据所在位置。注意这里不能直接定位标签,数据在java-script文本当中,直接定位标签进行解析,最终返回空列表。
这里需要向上定位到script标签,获取text文本,实质是以json格式的text文本存在,使用json.loads将文本转化为json格式进行字典value值的提取。
这里以爬取20页为例:(网站链接的参数对应不同的页数,这里以循环的page代替页数)
代码末尾配置了各岗位的连接URL。
URL详情页爬取信息,绘制词云图,以及基于pyecharts的可视化界面、mongodb数据库的搭建请移步下一篇文章。
劳烦诸位垂阅,如有不足,请为拙作斧正。
下面展示一些 内联代码片


	 import json
	 import requests
     import openpyxl
     wb=openpyxl.Workbook()
     sheet=wb.active
     sheet.append(['岗位名称','公司类型','所在地','公司名称','公司福利','工作要求','公司业务','薪资','详细内容'])
     headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.68'
    }
`    for page in range(1,21):
        url='https://search.51job.com/list/000000,000000,0000,00,9,99,%25E4%25BA%25A7%25E5%2593%2581,2,{}.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare='.format(page)
        #	发送请求
        response=requests.get(url=url,headers=headers)
		#	对响应数据解析获取js文本
        tree = etree.HTML(response.text)
        content= tree.xpath('//script[@type="text/javascript"]/text()')[0]
        #	转换为字典格式
        dic_json=json.loads(content.replace('window.__SEARCH_RESULT__ = ',''))
        detail_list=dic_json['engine_search_result']``
        for dl in detail_list:
	       try:
				job_name=dl['job_name']
				com_kind=dl['companytype_text']
				job_address = dl['workarea_text']
				com_name=dl['company_name']
				com_wolf=dl['jobwelf']
				com_demend=dl['attribute_text']
				com_work=dl['companyind_text']
				job_salary=dl['providesalary_text']
				job_url=dl['job_href']
				
				print('岗位名称---', job_name)
				print('公司类型---', com_kind)
				print('所在地---', job_address)
				print('公司名称---', com_name)
				print('公司福利---', com_wolf)
				print('地址,经验,学历,招人数---', com_demend)
				print('公司主营---', com_work)
				print('薪资---', job_salary)
				print('URL---', job_url)
				sheet.append([job_name,com_kind,job_address,com_name,com_wolf,'-'.join(com_demend),com_work,job_salary])
	        except:
	        	pass
	wb.save('开发工程师.xlsx')



	
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值