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 encode和decode的妙用
Sep 02 Python
Python返回真假值(True or False)小技巧
Apr 10 Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
Python字符串中删除特定字符的方法
Jan 15 Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 Python
Python中if有多个条件处理方法
Feb 26 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
python爬虫爬取图片的简单代码
Jan 18 Python
python 利用panda 实现列联表(交叉表)
Feb 06 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实现微信发红包功能
2018/07/13 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
js禁止表单重复提交
2017/08/29 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
python深度优先搜索和广度优先搜索
2018/02/07 Python
django框架模板语言使用方法详解
2019/07/18 Python
centos7之Python3.74安装教程
2019/08/15 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
windows10在visual studio2019下配置使用openCV4.3.0
2020/07/14 Python
python中pow函数用法及功能说明
2020/12/04 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
竞选班长演讲稿
2013/12/30 职场文书
销售简历自我评价
2014/01/24 职场文书
四议两公开实施方案
2014/03/28 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
2015年教师新年寄语
2014/12/08 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
java多态注意项小结
2021/10/16 Java/Android
vue+iview实现手机号分段输入框
2022/03/25 Vue.js