⼀键爬取前程⽆忧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.7 05.68'
51job人才招聘网
}
`    for page in range(1,21):
url='search.51job/list/000000,000000,0000,00,9,99,%25E4%25BA%25A7%25E5%2593%2581,2,{}.html?lang=c&postchannel=0000&worky ear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare='.format(page)
# 发送请求
(url=url,headers=headers)
# 对响应数据解析获取js⽂本
tree = etree.)
content= tree.xpath('//script[@type="text/javascript"]/text()')[0]
# 转换为字典格式
dic_json=json.place('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')