免责声明:本文所记录的技术手段及实现过程,仅作为爬虫技术学习使用,不对任何人完全或部分地依据本文的全部或部分内容从事的任何事情和因其任何作为或不作为造成的后果承担任何责任。

爬取需求:从网站【www.shixiseng.com】上,任意查询条件下,爬取前5页工作岗位的企业名称、工作岗位、薪资水平、工作地点等信息;

爬取工具:chrome浏览器、pycharm

Python库:requests、BeautifulSoup

01

网站结构分析

通过输入url【www.shixiseng.com】,打开实习僧网站,点击【搜索】按钮打开查询结果页面

通过翻页按钮找到每页对应的url链接信息:

https://www.shixiseng.com/interns?page=1&type=intern&keyword=&area=&months=&days=&degree=&official=&enterprise=&salary=-0&publishTime=&sortType=&city=%E5%85%A8%E5%9B%BD&internExtend=

https://www.shixiseng.com/interns?page=2&type=intern&keyword=&area=&months=&days=&degree=&official=&enterprise=&salary=-0&publishTime=&sortType=&city=%E5%85%A8%E5%9B%BD&internExtend=

https://www.shixiseng.com/interns?page=3&type=intern&keyword=&area=&months=&days=&degree=&official=&enterprise=&salary=-0&publishTime=&sortType=&city=%E5%85%A8%E5%9B%BD&internExtend=

需要爬取的字段需要点击岗位标题的超链接,在打开新的页面中才能找到,因此,我们需要先爬取所有岗位详情对应的url。在chrome浏览器中,在岗位标题上右键,点击【检查】,在打开的页面中定位需要获取url的html定位信息。

在chrome工具分析html文件,找到获取岗位详情的关键定位信息。

综上所述,先通过当前请求页面打开岗位列表,通过爬取列表的岗位信息,拿到岗位的详情url,再通过详情的url爬取需要的相关字段。

02

爬取详情页URL

根据上面分析的网站结构,开始创建python工程并编写代码:

岗位列表html解析定位信息:'.intern-wrap.intern-item'

岗位详情url解析定位信息:.f-l.intern-detail__job a

运行代码,结果如下:

爬取岗位信息详情url成功!

03

爬取详情页公司

继续编写代码,打开详情页的url,在打开的详情页提取公司信息

分析详情页,公司信息的html定位信息为:.com_intro .com-name 

继续编写解析代码:

运行代码:

发现获取的公司信息存在空格和空行,将空格和空行去掉:

再次运行代码:

爬取公司信息成功!

04

爬取详情页岗位

分析详情页,岗位信息的关键定位信息为:.new_job_name span

编写代码,提取岗位信息

运行代码,结果如下:

爬取岗位信息成功!

05

爬取详情页工资范围

分析详情页,工资范围的关键提取信息为:.job_money.cutom_font

编写代码提取工资范围信息:

运行结果为:

工资范围信息爬取成功,但是显示是乱码,应该是网站防止关键信息被爬取,对工资范围信息的数据进行了加密处理。最简单的解码方式就是重新进行utf8编码,分别建立utf8编码和数字0~9的对应关系,爬取信息后根据0~9的对应关系批量替换,实现数字的展示。

先随便复制一份工资信息,看看编码后是什么内容:

通过中间的符号”-”、”/”对比来看,得出如下关系:

300 = \xee\xa3\xb2\xef\xa2\x9e\xef\xa2\x9e

400 = \xef\x8b\x8a\xef\xa2\x9e\xef\xa2\x9e

天 = \xe5\xa4\xa9

不难看出,3段”\”包含的内容为1个字符,所以得出如下结论:

0 = \xef\xa2\x9e

3 = \xee\xa3\xb2

4 = \xef\x8b\x8a

继续在页面复制不同的数字和单位进行打印,找出可能出现的所有对应关系,本文不再演示。

编码将上述推断出来的映射关系进行转换:

运行结果如下:

因为没有全部进行映射,所以还存在乱码,工资范围信息爬取成功!

06

爬取详情页工作地点

分析详情页,工作地点的提取关键信息为:.com_position

编写代码进行提取:

运行代码结果如下:

工作地点信息爬取成功!

所有需要爬取的信息都已经成功爬取,爬虫编码完成!

所有示例代码均可通过微信公众号回复关键字【pachong23】下载!

实习僧[shixiseng.com]爬虫实战笔记相关推荐

  1. 京东商品爬虫实战笔记

    免责声明:本文所记录的技术手段及实现过程,仅作为爬虫技术学习使用,不对任何人完全或部分地依据本文的全部或部分内容从事的任何事情和因其任何作为或不作为造成的后果承担任何责任. 爬取需求:爬取京东商城根据 ...

  2. python爬虫实战笔记---以轮子哥为起点Scrapy爬取知乎用户信息

    开发环境:python3.5+Scrapy+pycharm+mongodb 思路: 1.选定起始人:选定一个关注数量或粉丝数量多的大佬 2.获取粉丝和关注列表 3.获取列表用户信息 4.获取每位用户粉 ...

  3. 笑话大全爬虫实战笔记[xiaohua.zol.com.cn]

    免责声明:本文所记录的技术手段及实现过程,仅作为爬虫技术学习使用,不对任何人完全或部分地依据本文的全部或部分内容从事的任何事情和因其任何作为或不作为造成的后果承担任何责任. 爬取需求:通过百度搜索关键 ...

  4. 网易新闻爬虫实战笔记[news.163.com]

    免责声明:本文所记录的技术手段及实现过程,仅作为爬虫技术学习使用,不对任何人完全或部分地依据本文的全部或部分内容从事的任何事情和因其任何作为或不作为造成的后果承担任何责任. 爬取需求:爬取网易新闻[n ...

  5. python爬虫实战笔记——爬取图书信息(利用selenium库+chromedriver.exe插件)

    准备: 1.插件chromedriver.exe 2.已经安装好谷歌浏览器Chrome 编写代码 from bs4 import BeautifulSoup from selenium import ...

  6. python 爬手机号_Python爬虫实战笔记_2-2 爬取手机号

    练习两层工作流 第一步,获取目标url存入数据库(mongoconn.py ) 第二步,从数据库中读出url, 并从页面上提取目标信息(homework2_2.py ) 源代码 mongoconn.p ...

  7. 爬虫实战:链家租房数据爬取,实习僧网站数据爬取

    前面已经进行了爬虫基础部分的学习,于是自己也尝试爬了一些网站数据,用的策略都是比较简单,可能有些因素没有考虑到,但是也爬取到了一定的数据,下面介绍两个爬过的案例. 爬虫实战 链家网站爬取 实习僧网站爬 ...

  8. 【python实现网络爬虫(4)】实习僧网站信息爬取(字体反爬虫破解)

    实习僧网站 实习僧网址,地址为北京,在搜索框输入"python",如下 实战解析 步骤一.建立for循环爬取前20页的内容 首先.查看翻页URL的信息,找规律 第一页:https: ...

  9. python爬虫爬取实习僧岗位信息并存入excel数据表中

    欢迎访问我的个人网站http://liubofeng.com 网页分析 博主在本博客中爬取的是数据分析岗位. 进入网站首页https://www.shixiseng.com/搜索数据分析,F12审查元 ...

  10. python爬虫从入门到实战笔记——第四章Scrapy框架

    推荐阅读: python爬虫从入门到实战笔记--第一章爬虫原理和数据爬取 python爬虫从入门到实战笔记--第二章非结构化数据和结构化数据的提取 python爬虫从入门到实战笔记--第三章动态HTM ...

最新文章

  1. 【CV实践】图像检索从入门到进阶
  2. mysql每个类型查三条_Mysql的几个灵魂拷问(三)
  3. 汇编 Irvine32链接库中一些过程函数的使用说明
  4. tableau实战系列(三十九)-Tableau可视化之多种地图绘制汇总
  5. 基于Leaflet实现路径轨迹回放功能
  6. 消费消息删除_【进阶之路】可靠消息最终一致性解决方案
  7. 配置React项目的运行环境
  8. Eclipse 隐藏已关闭的项目
  9. java中#{}和${}的区别
  10. SMPL: A Skinned Multi-Person Linear Model
  11. 电子技术基础数字部分第六版_电子技术基础 数字部分 第六版课后参考答案 (康华光 高等教育)...
  12. 联想微型计算机q190怎么拆,联想q190迷你小主机上网怎?
  13. 你在家看电视,家里的电视也在看你?
  14. weblogic安装以及异常解决方法【转】
  15. 3D打印机赋予了海岸生态系统极大的恢复能力
  16. 跟我学Spring3-开涛-笔记
  17. 微信小程序跳转微信小程序实现免登录
  18. 最简单的混合开发教程:APICloud.
  19. 原电脑的LenovoS41-70的Anaconda配置信息
  20. IDEA无法启动Tomcat显示[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirector

热门文章

  1. 网络编程中常用的fd是什么
  2. 基于PHP课程网站设计开题报告,在线课程网站设计开题报告
  3. A Game of Thrones(96)
  4. cors数据类型_CORS账号和南方RTK连接怎样操作使用?步骤说明
  5. 益聚星荣:如何有理有据地给元宇宙泼一盆冷水?
  6. java怎么下载我的世界手机版_我的世界JAVA版手机版
  7. linux虚拟机克隆mac地址冲突,虚拟机下linux迁移造成MAC地址异常处理办法(示例代码)...
  8. (纪中)008. Oliver的成绩(score)【高精度】
  9. 笑是理想的热情与态度
  10. 带你从头到尾梳理大图片加载OOM处理问题