ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实习僧[shixiseng.com]爬虫实战笔记

2021-06-26 19:30:22  阅读:98  来源: 互联网

标签:url 岗位 shixiseng 爬虫 信息 爬取 详情页 com


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

爬取需求:从网站【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

编写代码进行提取:

运行代码结果如下:

工作地点信息爬取成功!

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

标签:url,岗位,shixiseng,爬虫,信息,爬取,详情页,com
来源: https://blog.csdn.net/zhangjin530/article/details/118253379

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有