使用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&degreefrom=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招聘网的数据相关推荐

  1. 用python爬取前程无忧招聘网

    直接上代码了,相比前篇文章智联招聘网的数据,前程无忧网的数据可以爬取很多. 网址:https://search.51job.com/list/040000,000000,0000,00,9,99,%2 ...

  2. 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化

    大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...

  3. 【pyecharts数据可视化】python爬取去哪儿网景点数据,做交互式数据可视化

    写在前面 在网易云课堂看到城市数据团大鹏老师讲的<Python数据可视化利器:Pyecharts!>[传送门],于是把前一篇南京的景点数据做一个可视化. 1.还是去哪儿网景点爬取 具体可以 ...

  4. Python爬取51job招聘信息

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  5. 使用Python爬取中国天气网天气数据

    使用Python获取中国天气网中"广州"天气数据 注意:原文章写于2016年12月 广州天气页面:http://www.weather.com.cn/weather/1012801 ...

  6. Python爬虫,爬取51job上有关大数据的招聘信息

    Python爬虫,爬取51job上有关大数据的招聘信息 爬虫初学者,练手实战 最近在上数据收集课,分享一些代码. 分析所要爬取的网址 https://search.51job.com/list/000 ...

  7. Python爬虫 scrapy框架爬取某招聘网存入mongodb解析

    这篇文章主要介绍了Python爬虫 scrapy框架爬取某招聘网存入mongodb解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建项目 sc ...

  8. 用python输出所有的玫瑰花数_用Python爬取WordPress官网所有插件

    转自丘壑博客,转载注明出处 前言 只要是用WordPress的人或多或少都会装几个插件,可以用来丰富扩展WordPress的各种功能.围绕WordPress平台的插件和主题已经建立了一个独特的经济生态 ...

  9. python爬房源信息_用python爬取链家网的二手房信息

    题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...

最新文章

  1. python pexpect telnet_使用python的pexpect模块,实现远程免密登录的示例
  2. 快递物流查询接口介绍
  3. PHP查看PECL模块包含的函数
  4. zappos核心价值_尽管Zappos说了什么,中层管理人员仍然很重要
  5. php function函数用法,js的function函数是什么?js中function的用法
  6. Python vs Matlab—— find 与 np.where
  7. sql中的join问题
  8. 搜索引擎蜘蛛及网站robots.txt文件详解[转载]
  9. EndpointAddress——不只是一个Uri[上篇]
  10. Android 音视频开发学习思路大纲
  11. 华研计算机系统苹果用不了,系统瘦身:Apple 苹果 在 macOS Catalina 中取消 Dashboard...
  12. 合取式/合取范式/主合取范式/重言式/矛盾式 基本概念
  13. P1038 神经网络
  14. java 0-999 阿拉伯数字转英文
  15. mysql 14 关闭休眠链接
  16. Java英语单词大全
  17. 外观html与外观css的区别,用房间和装修来解读html代码与css样式的区别和关系
  18. 微信公众号自定义功能页开发流程
  19. stm8程序无法写入c语言,[转载]STM8 PWM例程
  20. 云桌面系统功能参数(备忘)

热门文章

  1. python:画一箭穿心.情人节送给你最爱的人吧!
  2. 数据结构——链式存储
  3. fiddler之数据分析和查看(inspectors)-抓包
  4. 一次测试环境请求反应缓慢问题排查过程
  5. CentOS7云服务器上部署小而美博客
  6. python程序开机自启动_python 设置开机启动脚本
  7. java计算机毕业设计酒店后厨供应商订单合并系统源程序+mysql+系统+lw文档+远程调试
  8. setw和setfill的用法
  9. Pytorch 类别标签转换one-hot编码
  10. 发票模板,纯css+html