Python网络爬虫爬取招聘数据(利用python简单零基础)可做可视化

这篇具有很好参考价值的文章主要介绍了Python网络爬虫爬取招聘数据(利用python简单零基础)可做可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、相关需求分析

1.目的

身为一个求职者,或者说是对于未来的职业规划还没明确目标的大学生来说,获取各大招聘网上的数据对我们自身的发展具有的帮助作用,本文章就简答零基础的来介绍一下如何爬取招聘数据。

二、直聘网页结构分析

我们先来分析一下网页的结构便于后续数据和采集

1.网页相关值的查找

我们以东莞的Python数据分析师这个职位来做一个简单的分析,页面如下图所示:
python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫

按键盘上的F12或者点击鼠标的右键打开检查如下图:

python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫

点击进去我们可以看到如下界面:
python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫
进入之后刷新页面,打开网络,找到如下图所示的位置,打开查看页面数据:
python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫
找到之后回到标头,复制如下的url:
python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫

2.网页的下一页规律查找

查看图片不难发现,页面的换页规律依赖于page,当page等于1的时候表示当前在第一页python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫
所以说这个规律还是比较容易发现的

三、Python相关的第三库介绍

1.Urllib的介绍

(1)urllib的简单介绍

urllib库是Python内置的HTTP请求库,只需要在代码中Import 即可使用,主要有一下四大模块

urllib.request  请求模块
urllib.error  异常处理模块
urllib.parse  url解析模块
urllib.robotparser  robots.txt解析模块

这个模块可以帮助我们获取到网页中的内容并保存到自己的电脑当中,使用简单方便,简单易学。
详细的使用方法参考csdn博主:urllib库万字详解

(2)在本例中的作用

本例子当中的urllib主要用到了urllib中的request方法,请求到网页中内容保存下来进行分析使用

2.Json的介绍

(1)json的简单介绍

JSON,全称是 JavaScript Object Notation,即 JavaScript对象标记法。
JSON用来存储和交换文本信息,比xml更小/更快/更易解析,易于读写,占用带宽小,网络传输速度快的特性,适用于数据量大,不要求保留原有类型的情况。。前端和后端进行数据交互,其实就是JS和Python进行数据交互!
详细请查看csdn博主:【强烈推荐】Python中JSON的基本使用(超详细)

(2)本例中的作用

在本例子中,我们使用json来下载文件,便于后续的操作

3.Jsonpath的介绍

(1)jsonpath的简单介绍

JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括Javascript、Python、PHP和Java。
详细请阅读:JsonPath用法详解

(2)jsonpath在本例的作用

在本例子中我们使用jsonpath来查找到相关职位数据,便于后期的提取

4.Pandas的介绍

(1)pandas的简单介绍

Pandas是一个使用频率很高的第三方库,在人工智能,机器学习中也经常涉及到pandas的使用,pandas可以生成Series或者DateFram类型的数据,支持很多种方法对数据进行操作。
详细查看其它博主的文章:pandas用法-全网最详细教程

(2)pandas在本例子中的作用

pandas 在本例子中主要用来生成表格,导出相应的数据

三、代码说明

(1)第三方库导入

import urllib.request 
import json
import jsonpath
import pandas as pd

#没有安装jsonpath的可以加入如下代码:!pip install jsonpath
或者在Pycharm中点击Python Packages之后进行搜索安装:
python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫

(2)设置url和headers模拟浏览器发出请求:

url = 'https://www.zhipin.com/wapi/zpgeek/search/joblist.json?scene=1&query=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%B8%88&city=101281600&experience=&payType=&partTime=&degree=&industry=&scale=&stage=&position=&jobType=&salary=&multiBusinessDistrict=&multiSubway=&page=page&pageSize=30'

headers = {
#     :method: GET
#     :path: /f.gif?__a=62982351.1679801734.1679846194.1679879251.40.6.5.25&__l=r%3Dhttps%253A%252F%252Fcn.bing.com%252F%26l%3D%252Fwww.zhipin.com%252Fweb%252Fgeek%252Fjob%253Fquery%253D%2525E6%252595%2525B0%2525E6%25258D%2525AE%2525E5%252588%252586%2525E6%25259E%252590%2525E5%2525B8%252588%2526city%253D101281600%26s%3D3%26g%3D%26friend_source%3D0%26s%3D3%26friend_source%3D0&__g=-&e=3384&r=&_=1679879382&pk=cpc_user_job&ca=geek_chat_page_entry_uid_548732951_version_275&url=https%3A%2F%2Fwww.zhipin.com%2Fweb%2Fgeek%2Fjob%3Fquery%3D%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590%25E5%25B8%2588%26city%3D101281600&s=3&friend_source=0
#     :scheme: https
    'accept': 'image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'cookie': 'lastCity=101281600; wt2=DnRZSYfeITPomuHOIdciVLhkSe-G9fXAvrgUujmFx4Qyu9hNnbJPen11SjpFUMGJy0jMm2nS04hwdg2BoZK4Gtw~~; wbg=0; Hm_lvt_194df3105ad7148dcf2b98a91b5e727a=1679803390,1679837440,1679846192,1679879252; __zp_seo_uuid__=0bd6206f-8557-4f3d-bd30-535604382b1d; __g=-; Hm_lpvt_194df3105ad7148dcf2b98a91b5e727a=1679879389; __c=1679879251; __l=r=https%3A%2F%2Fcn.bing.com%2F&l=%2Fwww.zhipin.com%2Fweb%2Fgeek%2Fjob%3Fquery%3D%25E6%2595%25B0%25E6%258D%25AE%25E5%2588%2586%25E6%259E%2590%25E5%25B8%2588%26city%3D101281600&s=3&g=&friend_source=0&s=3&friend_source=0; __a=62982351.1679801734.1679846194.1679879251.40.6.5.25; __zp_stoken__=dc22eECNMeGR%2FQDlyNw4nAlZYbBk7fjJvGk4Naw1wKz0HFWRWXVYLa2cOeTlHBjYFJkduFjwGYTtfCCYNT28DAlxZYnx%2FO141FxNnQnMNOEoSICpTU24GQ2cJDz54H3tOZH5cdzh9C0dBTXQ%3D',
    'referer': 'https://www.zhipin.com/',
    'sec-ch-ua': '"Chromium";v="110", "Not A(Brand";v="24", "Microsoft Edge";v="110"',
    'sec-ch-ua-mobile': '?0',
   'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'image',
    'sec-fetch-mode': 'no-cors',
    'sec-fetch-site': 'same-site',
    'user-agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.69' } 

headers的内容可以在网页的标头找到

(3)自定义请求头,打开url:

request = urllib.request.Request(url=url,headers=headers)#自定义请求头

response = urllib.request.urlopen(request)#打开url

(4)保存网页的所有数据,这里的网页使用UTF-8解码,不同的网页有不同的解码格式

content = response.read().decode('utf-8')#接收数据

with open('boss_job_list.json','w',encoding='utf-8')as f: #保存为json文件
    f.write(content)

保存到的json文件如下图所示:
python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫

(5) 对数据进行解析:

obj = json.load(open('boss_job_list.json','r',encoding='utf-8'))
job_name_list = jsonpath.jsonpath(obj,'$..jobName')
job_name_boss_list = jsonpath.jsonpath(obj,'$..bossName')
job_bossTitle_list = jsonpath.jsonpath(obj,'$..bossTitle')
job_salaryDesc_list = jsonpath.jsonpath(obj,'$..salaryDesc')
job_jobLabels_list = jsonpath.jsonpath(obj,'$..jobLabels')
job_skills_list = jsonpath.jsonpath(obj,'$..skills')
job_areaDistrict_list = jsonpath.jsonpath(obj,'$..areaDistrict')
job_brandName_list = jsonpath.jsonpath(obj,'$..brandName')
job_welfareList_list = jsonpath.jsonpath(obj,'$..welfareList')
job_brandScaleName_list = jsonpath.jsonpath(obj,'$..brandScaleName')

利用pandas创建数据表格

job_data = pd.DataFrame(data=[job_name_list,job_name_boss_list,job_bossTitle_list,job_salaryDesc_list,job_jobLabels_list,job_skills_list,job_areaDistrict_list,job_brandName_list,job_welfareList_list,job_brandScaleName_list])

规范化数据格式

 #对原始数据进行转置
job_data = job_data.T
#设置列名
job_data.columns = ['职位名称','HR名称','HR职位','薪资','职位要求','职位所需技能','工作地点','工司名称','职位福利','公司规模'] 
#设置索引
job_data.set_index('职位名称',inplace=True)

四、结束语

1.效果展示

python爬虫boss直聘数据,python,网络爬虫,零基础,python,开发语言,爬虫

2.代码的可移植性

由于网页的结构变化频率比较快,上述代码直接复杂到程序上可能会报错,所以每一次使用都需要根据网页的结构来编写代码

3.扩展简化代码

上述代码可可以使用第三方库来写入相应的文件格式,减少代码的数量。同时,可以修改更新代码使得代码可以爬取多页,相应的方法请读者自行查阅相关资料

3.总结

上述代码为自己课余时间自学而来,非专业爬虫,上述代码可以提供给初学者一个简单基础的范例,这也是我写这篇文章的初衷,代码的不足或者错误之处请各位大佬斧正。文章来源地址https://www.toymoban.com/news/detail-778376.html

到了这里,关于Python网络爬虫爬取招聘数据(利用python简单零基础)可做可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python爬取招聘网站数据

    这段代码是使用Selenium自动化测试模块进行网页爬取的示例代码。它通过模拟人的行为在浏览器中操作网页来实现爬取。具体的流程如下: 导入所需的模块,包括Selenium、时间、随机、csv等模块。 打开浏览器,创建一个Chrome浏览器实例。 设置要爬取的页数范围。 循环遍历每

    2024年02月02日
    浏览(68)
  • 〖Python网络爬虫实战㉔〗- Ajax数据爬取之Ajax 分析案例

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月07日
    浏览(72)
  • 【Python网络爬虫】三分钟教会你使用SeleniumWire快速爬取数据

    在终端使用pip进行安装 pip install xxx 这里我使用的是Chrome,其中列举了几个常用的option,供大家学习使用 option = webdriver.ChromeOptions():设置Chrome启动选项 option.add_argument(‘headless’):不打开浏览器进行数据爬取,因为没有可视化过程,所以推荐整个流程开发完毕后,在使用此条

    2024年02月21日
    浏览(52)
  • 〖Python网络爬虫实战㉕〗- Ajax数据爬取之Ajax 案例实战

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月06日
    浏览(70)
  • Python网络爬虫逆向分析爬取动态网页、使用Selenium库爬取动态网页、​编辑将数据存储入MongoDB数据库

    目录 逆向分析爬取动态网页 了解静态网页和动态网页区别 1.判断静态网页  2.判断动态网页  逆向分析爬取动态网页 使用Selenium库爬取动态网页 安装Selenium库以及下载浏览器补丁 页面等待  页面操作 1.填充表单 2.执行JavaScript 元素选取 Selenium库的find_element的语法使用格式如下

    2024年02月15日
    浏览(118)
  • (十五)python网络爬虫(理论+实战)——实战:eastmoney沪深京A股股票数据爬取,表格解析

    目录 7 爬取沪深京A股股票数据       7.1 爬取目标

    2023年04月22日
    浏览(43)
  • 基于Python的招聘网站信息爬取与数据分析

    文末获取资源,收藏关注不迷路 随着社会经济的快速发展,人们的生活水平得到了显著提高,但随之而来的社会问题也越来越多。其中最为显著的就是就业问题。为此,招聘信息的展示也变得越来越为重要。但是在大量的招聘信息中,人们在提取自己最想要的信息时变得不那

    2024年02月04日
    浏览(55)
  • 爬虫与数据分析项目实战2.1 Selenium爬取Boss招聘信息

    完成: 1.爬取信息 2.基于爬取结果筛选符合条件的信息    岗位名称、薪资、岗位要求、地区、公司名称、公司规模、细节链接 3.筛选base杭州的岗位保存到csv文件中 But容易出现网络不稳定造成的无法定位元素所在位置的情况,小范围爬取可以 4.基于csv分析后续

    2024年02月08日
    浏览(48)
  • 基于python的网络爬虫爬取天气数据及可视化分析(Matplotlib、sk-learn等,包括ppt,视频)

    基于python的网络爬虫爬取天气数据及可视化分析 可以看看演示视频。 基于Python爬取天气数据信息与可视化分析 本论文旨在利用Python编程语言实现天气数据信息的爬取和可视化分析。天气数据对于人们的生活和各个领域都有着重要的影响,因此准确获取和有效分析天气数据对

    2024年02月03日
    浏览(49)
  • Python爬虫:如何使用Python爬取网站数据

    更新:2023-08-13 15:30 想要获取网站的数据?使用Python爬虫是一个绝佳的选择。Python爬虫是通过自动化程序来提取互联网上的信息。本文章将会详细介绍Python爬虫的相关技术。 在使用Python爬虫之前,我们需要理解网络协议和请求。HTTP是网络传输的重要协议,它是在Web浏览器和

    2024年02月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包