直接上代码了,相比前篇文章智联招聘网的数据,前程无忧网的数据可以爬取很多。

网址:https://search.51job.com/list/040000,000000,0000,00,9,99,%20,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare=
简化后:https://search.51job.com/list/040000,000000,0000,00,9,99,%20,2,1.html?
相比之下,这份获取的数据更适合练习学习数据分析
爬取的方法跟步骤跟智联招聘网那篇一样。都是用到了第三方库requests

import requests
import re
import os
import timeclass Spider(object):page_count = 0def __init__(self):self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}global path, page_countpath = './前程无忧招聘网/'if not os.path.exists(path):os.mkdir(path)self.path = pathwith open(path + "前程无忧招聘.json", "a", encoding='utf-8') as fp:fp.write('{')def response(self, url, headers):"""请求访问服务器获取资源"""try:response = requests.get(url, headers)response.encoding = response.apparent_encodingreturn responseexcept:print('访问失败')return Nonedef parse(self, response):"""解析出我们需要进入的岗位名称及其详情链接"""res = re.findall(r'<span>\s+<a target="_blank" title="(.*?)" href="(.*?)" .*?</a>', response.text,re.S)return resdef parse_S(self, response):try:price = re.findall('<div class="cn".*?<strong>(.*?)</strong>', response.text, re.S)[0]except:price = Nonetry:company_name = re.findall('class="cname">.*?title="(.*?)" class.*?<em.*?', response.text, re.S)[0]except:company_name = Nonetry:add = re.findall('<p class="msg.*?title="(.*?)&nbsp;', response.text, re.S)[0]except:add = Nonetry:num = re.findall('<p class="msg ltype".*?招(\d+)人&nbsp;', response.text, re.S)[0]except:num = '若干人'detail = {}detail['公司名称'] = company_namedetail['工作城市'] = adddetail['招聘人数'] = numdetail['工资情况'] = pricereturn detaildef getContent(self, url):response = self.response(url, self.headers)detail = self.parse_S(response)return detaildef save(self, items):Spider.page_count += 1print(Spider.page_count)with open(path + "前程无忧招聘.json", "a", encoding='utf-8') as fp:fp.write(str(items) + ',')def crawl(self, page):crawl_url = 'https://search.51job.com/list/040000,000000,0000,00,9,99,%2520,2,{}.html?'.format(page)response = self.response(crawl_url, self.headers)res = self.parse(response)items = {}for name, url in res:detail = self.getContent(url)items['name'] = nameitems['detail'] = detailself.save(items)def main(self):for page in range(0, 100):self.crawl(page)with open(path + "前程无忧招聘.json", "a", encoding='utf-8') as fp:fp.write('}')start = time.time()
if __name__ == '__main__':c = Spider()c.main()end = time.time()print(end - start)

如发现可以改进的地方或者哪里做得不好,希望大家能够提出多多交流。

用python爬取前程无忧招聘网相关推荐

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

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

  2. 使用Python爬取51job招聘网的数据

    使用Python爬取51job招聘网的数据 进行网站分析 获取职位信息 存储信息 最终代码 进行网站分析 进入https://www.51job.com/这个网站 我在这就以python为例搜索职位跳 ...

  3. python爬取前程无忧招聘网站数据搭建Hadoop、Flume、Kafka、Spark用Hive做数据分析Sqoop存储到Mysql并实现可视化

    文章目录 一.项目总体要求 二.环境搭建 1.安装包准备 2.安装jdk (1)查询是否安装java (2)卸载jdk (3)安装jdk (4)配置jdk环境变量 3.配置ssh免密登录 (1)进入到 ...

  4. python爬取前程无忧招聘岗位信息

    ######################首先使用requests获取前程无忧一级网页 import requests from lxml.etree import HTML import re i ...

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

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

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

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

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

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

  8. python爬取千图网_python爬取lol官网英雄图片代码

    python爬取lol官网英雄图片代码可以帮助用户对英雄联盟官网平台的皮肤图片进行抓取,有很多喜欢lol的玩家们想要官方的英雄图片当作自己的背景或者头像,可以使用这款软件为你爬取图片资源,操作很简单, ...

  9. Python爬取不羞涩网小姐姐图片——BeautifulSoup应用

    引言 今年提倡原地过年,相信很多朋友都没有回家过年,像我就被迫留在深圳过年了,无聊之余只能去看看电影爬爬山.今天给大家带来一个打发无聊时光的案例,用Python爬取不羞涩网小姐姐图片,并保存到本地,老 ...

最新文章

  1. mysql分组和where条件查询_【MySQL】:分组查询where和having
  2. 在这场人工智能“战争”中,这些国家都在做些什么?
  3. iOS之深入了解控制器View的加载
  4. 正则表达式快速入门(归纳版)
  5. 这些 Linux 的 “自动化” 技巧,教你轻松完成任务
  6. Solr实战(二):索引操作
  7. Windows——Modern Standby(现代待机) S0改Suspend to RAM(待机到内存)S3睡眠解决方案(以机械革命F1 i5-11300H为例)
  8. 一杯水怎么测试_一杯水就能鉴别翡翠真假的高招
  9. PHP Encoder (ioncube 10) 加密工具的使用
  10. 笔记本电脑分区后怎么恢复?3个方法
  11. git pull --rebase的作用是什么,它与git pull有什么区别?
  12. 设置chrome浏览器在一个标签页中打开链接自动跳转到新标签页
  13. 一些常用模块的测试用例
  14. 使用大白菜装机维护版软件取消Win7开机密码
  15. 电脑的显卡驱动需要更新吗?
  16. 《牧羊少年奇幻之旅》读书笔记
  17. 如何画出专业的原型图?(上)
  18. WeiPHP5.0,公众号与小程序结合的最佳开发框架
  19. 【推荐系统】【论文阅读笔记】【survey】A Survey on Session-based Recommender Systems基于会话的推荐系统综述
  20. Java JVM内存模型(运行时数据区域)详解

热门文章

  1. Unity3D 武器拖尾效果(刀光) 使用PocketRPG Trails
  2. Android Studio实现功能强大的购物商城APP
  3. EW资本世界:7月,投资者是无畏向前,还是暂时收手?
  4. 记一次计算机课作文,记一次课堂活动作文
  5. 干货!AI与自动驾驶─人工智能有可能实现人类智能的挑战性任务吗
  6. golang开发环境配置以及简单使用
  7. rgv调度问题c语言实现,基于效率最大化的RGV动态调度的算法设计与程序验证
  8. 无穷小与潘多拉魔盒(Pandora's Box)
  9. 学软件工程的人计算机几级,学软件工程师对英语的最低要求是过几级?网络工程师需要对哪方面强一点?具休达到什么水准?...
  10. 易路代理IP软件是什么?指纹防关联浏览器和Yilu代理是怎么配合工作的?