# -*- encoding: utf-8 -*-

"""

"""

#  导入相应的包

import requests

import time

import json

from urllib.parse import quote

def get_page(url_start,url_parse,params,job):

#  创建一个session对象

s = requests.Session()

#  用session对象发出get请求,请求首页获取cookies

s.get(url_start, headers=headers, timeout=3)

#  获取此处的cookie

cookie = s.cookies

#  获取此次的文本

response = s.post(url_parse, data=params, headers=headers, cookies=cookie, timeout=3)

#  设置每次请求间隔5秒钟

time.sleep(5)

#  获取json格式的数据

json_data = json.loads(response.text)

#  从json数据中获取到数据的总数

total_Count = json_data['content']['positionResult']['totalCount']

print("搜索结果一共有:"+str(total_Count)+"条")

'''

拉勾网每页是15条数据,默认只有30页的信息,如果抓取信息的总数/15>30,就取30页

'''

if int(total_Count/15) < 30 :

page_number = int(total_Count/15)

else:

page_number = 30

#  根据页数决定方法调用的次数

for pn in range(1, page_number + 1):

get_info(url_start, url_parse, pn, job)

print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")

def get_info(url_start,url_parse,page_number,job):

print("正在爬取第"+str(page_number)+"页数据")

data = {

'first': 'false',

'pn': page_number, # 页数

'kd': job  # 搜索的关键字

}

#  创建一个session对象

s = requests.Session()

#  用session对象发出get请求,请求首页获取cookies

s.get(url_start, headers=headers, timeout=3)

#  获取此处的cookie

cookie = s.cookies

#  获取此次的文本

response = s.post(url_parse, data=data, headers=headers, cookies=cookie, timeout=3)

#  设置爬虫休眠5秒

time.sleep(5)

#  整理json格式

text = json.loads(response.text)

#  获取信息列表

info = text['content']['positionResult']['result']

for i in info :

# 获取公司id

print('公司id', i['companyId'])

# 获取公司全名

print('公司全名', i['companyFullName'])

# 获取位置

print('位置', i['city'])

# 获取薪资

print('薪资', i['salary'])

# 获取公司规模

print('公司所在人数', i['companySize'])

# 获取要求技能

print('所需技能', i['skillLables'])

# 招聘信息发布时间

print('信息发布时间', i['createTime'])

# 区域

print('所在区域', i['district'])

# 要求学历

print('要求学历', i['education'])

#  车站名称

print('车站名称', i['stationname'])

print("===========================================================")

if __name__ == '__main__':      #  主程序入口

job = input("欢迎来到拉勾网,请输入您想咨询的职位:")

# 想要在URL中拼凑中文,需要将中文内容进行【转码】,用16进制表示

job_transcode = quote(job)

print("job", job_transcode)

#  主url【要爬取数据页面首页】

url_start = "https://www.lagou.com/jobs/list_"+job_transcode+"/p-city_0?&cl=false&fromSearch=true&labelWords=&suginput="

#  ajax请求

url_parse = "https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false"

print(url_start)

params = {

'first': 'true',

'pn': '1',

'kd': job

}

# 加入请求头,伪装成浏览器

headers = {

'Accept': 'application/json, text/javascript, */*; q=0.01',

'Referer': 'https://www.lagou.com/jobs/list_'+job_transcode+'/p-city_undefined?&cl=false&fromSearch=true&labelWords=&suginput=',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'

}

get_page(url_start, url_parse, params, job)

效果图

细心的小伙伴可能发现了,这次的爬虫程序跟上次分享的图片下载器完全不是一个级别的,怎么那么多处代码看不懂 ̄へ ̄其实很正常啦,因为爬虫的下限很低,上限极高。(如果每个网站的数据都那么好获取,那让该网站背后的程序员情何以堪)可能对于初学爬虫不久的学者来说,理解该次爬虫的过程比较的困难。但莫言先生曾经说过:

当你的才华还撑不起你的野心的时候,

你就应该静下心来学习;

当你的能力还驾驭不了你的目标时,

就应该沉下心来,历练。

python爬虫应聘信息_python爬虫获取拉钩网在线搜索招聘信息(超实用!)相关推荐

  1. python爬虫获取拉钩网在线搜索招聘信息(超实用!)

    在之前的博客<用python爬虫制作图片下载器(超有趣!)>中,小菌为大家分享了如何制作一个快捷便利的图片下载器.本次分享,小菌为大家带来的同样是关于爬虫程序方面的分享--获取拉勾网在线搜 ...

  2. java获取异常信息_Python中获取异常(Exception)信息

    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...

  3. python爬取招聘信息_python 爬取boss直聘招聘信息实现

    原标题:python 爬取boss直聘招聘信息实现 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求 ...

  4. python爬取boss直聘招聘信息_Python 爬取boss直聘招聘信息!

    原标题:Python 爬取boss直聘招聘信息! 1.一些公共方法的准备 获取数据库链接: importpymysql ''' 遇到不懂的问题?Python学习交流群:821460695满足你的需求, ...

  5. 【python爬虫02】使用Scrapy框架爬取拉勾网招聘信息

    使用Scrapy框架爬取拉勾网招聘信息 最近接触了Scrapy爬虫框架,简单写了个爬虫爬取拉钩网的招聘信息,加深对Scrapy框架的理解,不得不说Scrapy框架其实还是蛮方便的,就像爬虫流水线一样, ...

  6. python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现

    这篇文章我们来讲一下在网站建设中,Python爬虫进阶之爬取某视频并下载的实现.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 这几天在家闲得无聊,意外的挖掘到了一个资源网站 ...

  7. python 异步加载图片_Python 爬取拉钩网异步加载页面

    如下是我简单的获取拉钩网异步加载页面信息的过程 获取的是深圳 Python 岗位的所有信息,并保存在Mongo中 (对于异步加载,有的人说是把你要爬页面的信息整个页面先爬下来,保存本地,然后再看有没有 ...

  8. python爬取豆瓣电影信息_Python爬虫入门 | 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  9. python爬虫电影信息_Python爬虫入门 | 爬取豆瓣电影信息

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

最新文章

  1. vmware workstation 安装esx 启动vt功能
  2. javascript Windows对象(BOM)
  3. Lua 语言 快速入门
  4. db2 删除存储过程_蚂蚁金服OceanBase挑战TPCC | TPCC基准测试之存储优化
  5. linux7设备的挂载,centos7磁盘分区与挂载解析
  6. Linux触发连锁反应,惠及全球
  7. C#LeetCode刷题之#167-两数之和 II - 输入有序数组(Two Sum II - Input array is sorted)
  8. HashTable,Dictionary,ConcurrentDictionary 的应用场景,区别,用法统计
  9. mysql 存储时间 时间戳_具体场景下MySQL中用“时间戳”存储时间的问题
  10. [Java] 蓝桥杯ADV-176 算法提高 陶陶摘苹果
  11. Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)【转】
  12. Echo团队Alpha冲刺随笔 - 第八天
  13. java timer 序列化_Java中的定时器Timer使用示例代码
  14. 事件元素JS的event对象--知识点总结
  15. [转]用python来开发webgame服务端(5)
  16. 薛兆丰经济学课 1-1 人性与稀缺:经济学视角
  17. 微信小程序标题自定义、左上角返回首页小房子
  18. 2021暗月web渗透测试攻防全栈红队视频教程网络安全程师ctf学习
  19. 服务器迁移实践,物理服务器迁移到阿里云服务器
  20. lvgl使用旋转编码器做为外部输入设备

热门文章

  1. Canvas-lms 开源在线学习管理系统源码部署(生产版)
  2. 自定义View | 仿QQ运动步数进度效果
  3. android 自定义view实现仿QQ运动步数进度效果
  4. python绘制笛卡尔心形线方程_canvas绘制爱心的几种方法
  5. 微信小程序中基础入门
  6. 虚拟滚动实现(Vue)
  7. python模块化导入
  8. c语言处理nc程序,NC程序的语言问题
  9. STM32之学习总结(正点原子精英版V1,不定时更新)
  10. imac 2017升级内存