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中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
浅析Python基础-流程控制
Mar 18 Python
遍历python字典几种方法总结(推荐)
Sep 11 Python
python TKinter获取文本框内容的方法
Oct 11 Python
Django 创建/删除用户的示例代码
Jul 24 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
Python PyQt5整理介绍
Apr 01 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
Apr 29 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
Dec 21 Python
python 通过使用Yolact训练数据集
Apr 06 Python
Pygame如何使用精灵和碰撞检测
Nov 17 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
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
PHP_Flame(Version:Progress)的原代码
2006/10/09 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
动态加载js的几种方法
2006/10/23 Javascript
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
Ext JS Grid在IE6 下宽度的问题解决方法
2009/02/15 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
Javascript使用SWFUpload进行多文件上传
2016/11/16 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
微信小程序自定义组件
2017/08/16 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
js实现全选和全不选
2020/07/28 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
Python中的super用法详解
2015/05/28 Python
python处理按钮消息的实例详解
2017/07/11 Python
python删除某个字符
2018/03/19 Python
softmax及python实现过程解析
2019/09/30 Python
python实现ip地址的包含关系判断
2020/02/07 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
什么叫做SQL注入,如何防止
2016/10/04 面试题
火山动力Java笔试题
2014/06/26 面试题
学年自我鉴定
2014/01/16 职场文书
抄作业检讨书
2014/02/17 职场文书
产品质量保证书
2014/04/29 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
2016年感恩母亲节活动总结
2016/04/01 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书