python爬取招聘要求等信息实例


Posted in Python onNovember 20, 2020

在我们人生的路途中,找工作是每个人都会经历的阶段,小编曾经也是苦苦求职大军中的一员。怀着对以后的规划和想象,我们在找工作的时候,会看一些招聘信息,然后从中挑选合适的岗位。不过招聘的岗位每个公司都有不少的需求,我们如何从中获取数据,来进行针对岗位方面的查找呢?

大致流程如下:

1.从代码中取出pid

2.根据pid拼接网址 => 得到 detail_url,使用requests.get,防止爬虫挂掉,一旦发现爬取的detail重复,就重新启动爬虫

3.根据detail_url获取网页html信息 => requests - > html,使用BeautifulSoup

若爬取太快,就等着解封

if html.status_code!=200 print('status_code if {}'.format(html.status_code))

4.根据html得到soup => soup

5.从soup中获取特定元素内容 => 岗位信息

6.保存数据到MongoDB中

代码:

# @author: limingxuan 
# @contect: limx2011@hotmail.com
# @blog: https://www.jianshu.com/p/a5907362ba72
# @time: 2018-07-21
import requests
from bs4 import BeautifulSoup
import time
from pymongo import MongoClient
headers = {  
  'accept': "application/json, text/javascript, */*; q=0.01",
  'accept-encoding': "gzip, deflate, br",
  'accept-language': "zh-CN,zh;q=0.9,en;q=0.8",
  'content-type': "application/x-www-form-urlencoded; charset=UTF-8",
  'cookie': "JSESSIONID=""; __c=1530137184; sid=sem_pz_bdpc_dasou_title; __g=sem_pz_bdpc_dasou_title; __l=r=https%3A%2F%2Fwww.zhipin.com%2Fgongsi%2F5189f3fadb73e42f1HN40t8~.html&l=%2Fwww.zhipin.com%2Fgongsir%2F5189f3fadb73e42f1HN40t8~.html%3Fka%3Dcompany-jobs&g=%2Fwww.zhipin.com%2F%3Fsid%3Dsem_pz_bdpc_dasou_title; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1531150234,1531231870,1531573701,1531741316; lastCity=101010100; toUrl=https%3A%2F%2Fwww.zhipin.com%2Fjob_detail%2F%3Fquery%3Dpython%26scity%3D101010100; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1531743361; __a=26651524.1530136298.1530136298.1530137184.286.2.285.199",
  'origin': "https://www.zhipin.com",
  'referer': "https://www.zhipin.com/job_detail/?query=python&scity=101010100",
  'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
  }
conn = MongoClient('127.0.0.1',27017)
db = conn.zhipin_jobs
def init():
  items = db.Python_jobs.find().sort('pid')
  for item in items:
    if 'detial' in item.keys(): #当爬虫挂掉时,跳过已爬取的页
      continue
    detail_url = 'https://www.zhipin.com/job_detail/{}.html'.format(item['pid']) #单引号和双引号相同,str.format()新格式化方式
    #第一阶段顺利打印出岗位页面的url
    print(detail_url)
    #返回的html是 Response 类的结果
    html = requests.get(detail_url,headers = headers)
    if html.status_code != 200:
      print('status_code is {}'.format(html.status_code))
      break
    #返回值soup表示一个文档的全部内容(html.praser是html解析器)
    soup = BeautifulSoup(html.text,'html.parser')
    job = soup.select('.job-sec .text')
    print(job)
    #???
    if len(job)<1:
    item['detail'] = job[0].text.strip() #职位描述
    location = soup.select(".job-sec .job-location .location-address") 
    item['location'] = location[0].text.strip() #工作地点
    item['updated_at'] = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) #实时爬取时间
    #print(item['detail'])
    #print(item['location'])
    #print(item['updated_at'])
    res = save(item) #调用保存数据结构
    print(res)
    time.sleep(40)#爬太快IP被封了24小时==
#保存数据到MongoDB中
def save(item):
  return db.Python_jobs.update_one({'_id':item['_id']},{'$set':item}) #why item ???
   
# 保存数据到MongoDB
     
if __name__ == '__main__':
  init()

最终结果就是在MongoBooster中看到新增了detail和location的数据内容

python爬取招聘要求等信息实例 

到此这篇关于python爬取招聘要求等信息实例的文章就介绍到这了,更多相关python爬虫获取招聘要求的代码内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python logging日志模块以及多进程日志详解
Apr 18 Python
利用Python写一个爬妹子的爬虫
Jun 08 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
python实现爬山算法的思路详解
Apr 09 Python
Python之修改图片像素值的方法
Jul 03 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
Python如何爬取51cto数据并存入MySQL
Aug 25 Python
python如何写个俄罗斯方块
Nov 06 Python
Python使用Pygame绘制时钟
Nov 29 Python
Python集合的基础操作
Nov 01 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 #Python
Python getsizeof()和getsize()区分详解
Nov 20 #Python
Python析构函数__del__定义原理解析
Nov 20 #Python
Python request post上传文件常见要点
Nov 20 #Python
接口自动化多层嵌套json数据处理代码实例
Nov 20 #Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 #Python
Django vue前后端分离整合过程解析
Nov 20 #Python
You might like
《雄兵连》《烈阳天道》真的来了
2020/07/13 国漫
杏林同学录(六)
2006/10/09 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
深入探究node之Transform
2017/07/20 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
浅谈numpy库的常用基本操作方法
2018/01/09 Python
使用python获取csv文本的某行或某列数据的实例
2018/04/03 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
企业总经理岗位职责
2014/02/13 职场文书
如何写好自荐信
2014/04/07 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
实习介绍信模板
2015/01/30 职场文书
python某漫画app逆向
2021/03/31 Python
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang