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 运算符 供重载参考
Jun 11 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
Python实现的端口扫描功能示例
Apr 08 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
Django实现网页分页功能
Oct 31 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
Python实现爬取并分析电商评论
Jun 19 Python
python3获取控制台输入的数据的具体实例
Aug 16 Python
Python pyecharts绘制条形图详解
Apr 02 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
php adodb操作mysql数据库
2009/03/19 PHP
php存储过程调用实例代码
2013/02/03 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
PHP错误机制知识汇总
2016/03/24 PHP
javascript读取xml
2006/11/04 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
window.onload使用指南
2015/09/13 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
python实现的重启关机程序实例
2014/08/21 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
numpy.random模块用法总结
2019/05/27 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
jQuery treeview树形结构应用
2021/03/24 jQuery
一位农村小子的自荐信
2014/04/07 职场文书
留学推荐信英文范文
2015/03/26 职场文书
监护人证明
2015/06/19 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python