使用Python爬取51job招聘网的数据
使用Python爬取51job招聘网的数据
- 进行网站分析
- 获取职位信息
- 存储信息
- 最终代码
进行网站分析
进入https://www.51job.com/这个网站
我在这就以python为例搜索职位跳转到这个页面
按F12进行查看每个职位的信息在哪个包中
我们点进这个包中搜索
发现这组数据在Script标签中,类似于json数据,同时发现其链接的URL的键值为job_href我们可以写一个正则表达式来获取这些url方便后续获取信息,同时我们也发现这些url其实是被简单修改过的,我们需要用re.sub处理一下
real_url=[]
url = re.findall('"job_href":"(.*?)"',page_text,re.S)#职位详情URL
for each in url: #把url里的'\\/'改为'/',此时为真正的URLreal_url.append(re.sub(r'\\/','/',each))
获取职位信息
我们已经找到了每一个职位对应的URL,于是我们遍历这个URL列表,爬取每一个职位对应的信息。
我们需要把公司名称,招聘职位,岗位信息,地址和公司简介爬取到
对页面里的HTML源码进行xpath解析,可以获取到上文的信息,要使用try…except…对异常数据进行处理
存储信息
我们可以使用pandas模块对爬到的数据进行存储,同时我们发现换页的时候只是其中一个参数发生过改变,我们也可以写一个循环来爬取多页
最终代码
import requests
import lxml.etree
import os
import time
import re
import pandas as pd
xiangxi = [] #详细信息
mingcheng = [] #公司名称
zhiwei = [] #职位
xinxi = [] #岗位信息
dizhi = [] #公司地址
jianjie = [] #公司简介
gongzi = [] #工资
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'
}
for page in range(1,11): ##11为爬取前10页,这个数据可以更改url = 'https://search.51job.com/list/030200,000000,0000,00,9,99,python,2,'+str(page)+'.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field='response = requests.get(url = url,headers = headers) #获取数据response.encoding='gbk' #解码page_text = response.textimport reurl = re.findall('"job_href":"(.*?)"',page_text,re.S)real_url = []for each in url:real_url.append(re.sub(r'\\/','/',each))for each in real_url:response = requests.get(url = each,headers = headers)response.encoding='gbk'page_text2 = response.texttree = lxml.etree.HTML(page_text2)try:xiangxi.append(" ".join('%s' %id for id in tree.xpath('//p[@class="msg ltype"]//text()')))except IndexError:xiangxi.append("没找到相关内容")try:mingcheng.append(tree.xpath('//p[@class="cname"]/a//text()')[0]) #公司名称except IndexError:mingcheng.append("没找到相关内容")try:zhiwei.append(tree.xpath('//div[@class="cn"]/h1//text()')[0])#招聘职位except IndexError:zhiwei.append("没找到相关内容")try:xinxi.append(" ".join('%s' %id for id in tree.xpath('//div[@class="bmsg job_msg inbox"]/p//text()'))) #岗位信息except IndexError:xinxi.append("没找到相关内容")try:dizhi.append(tree.xpath('//div[@class="bmsg inbox"]/p[@class="fp"]//text()')[1]) #地址except IndexError:dizhi.append("没找到相关内容")try:jianjie.append(" ".join('%s' %id for id in tree.xpath('//div[@class="tmsg inbox"]//text()'))) #公司简介except IndexError:jianjie.append("没找到相关内容")try:gongzi.append(tree.xpath('//div[@class="cn"]/strong//text()')[0])#工资except IndexError:gongzi.append("没找到相关内容")
dic1 = {'公司名称': mingcheng,'招聘职位':zhiwei,'工资':gongzi,'详细信息':xiangxi,'地址':dizhi,'岗位信息':xinxi,'公司简介':jianjie,}
df = pd.DataFrame(dic1)
df.to_excel('招聘信息.xlsx', index=False)
使用Python爬取51job招聘网的数据相关推荐
- 用python爬取前程无忧招聘网
直接上代码了,相比前篇文章智联招聘网的数据,前程无忧网的数据可以爬取很多. 网址:https://search.51job.com/list/040000,000000,0000,00,9,99,%2 ...
- 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化
大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...
- 【pyecharts数据可视化】python爬取去哪儿网景点数据,做交互式数据可视化
写在前面 在网易云课堂看到城市数据团大鹏老师讲的<Python数据可视化利器:Pyecharts!>[传送门],于是把前一篇南京的景点数据做一个可视化. 1.还是去哪儿网景点爬取 具体可以 ...
- Python爬取51job招聘信息
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- 使用Python爬取中国天气网天气数据
使用Python获取中国天气网中"广州"天气数据 注意:原文章写于2016年12月 广州天气页面:http://www.weather.com.cn/weather/1012801 ...
- Python爬虫,爬取51job上有关大数据的招聘信息
Python爬虫,爬取51job上有关大数据的招聘信息 爬虫初学者,练手实战 最近在上数据收集课,分享一些代码. 分析所要爬取的网址 https://search.51job.com/list/000 ...
- Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...
- 用python输出所有的玫瑰花数_用Python爬取WordPress官网所有插件
转自丘壑博客,转载注明出处 前言 只要是用WordPress的人或多或少都会装几个插件,可以用来丰富扩展WordPress的各种功能.围绕WordPress平台的插件和主题已经建立了一个独特的经济生态 ...
- python爬房源信息_用python爬取链家网的二手房信息
题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...
最新文章
- python pexpect telnet_使用python的pexpect模块,实现远程免密登录的示例
- 快递物流查询接口介绍
- PHP查看PECL模块包含的函数
- zappos核心价值_尽管Zappos说了什么,中层管理人员仍然很重要
- php function函数用法,js的function函数是什么?js中function的用法
- Python vs Matlab—— find 与 np.where
- sql中的join问题
- 搜索引擎蜘蛛及网站robots.txt文件详解[转载]
- EndpointAddress——不只是一个Uri[上篇]
- Android 音视频开发学习思路大纲
- 华研计算机系统苹果用不了,系统瘦身:Apple 苹果 在 macOS Catalina 中取消 Dashboard...
- 合取式/合取范式/主合取范式/重言式/矛盾式 基本概念
- P1038 神经网络
- java 0-999 阿拉伯数字转英文
- mysql 14 关闭休眠链接
- Java英语单词大全
- 外观html与外观css的区别,用房间和装修来解读html代码与css样式的区别和关系
- 微信公众号自定义功能页开发流程
- stm8程序无法写入c语言,[转载]STM8 PWM例程
- 云桌面系统功能参数(备忘)