scrapy爬取实习僧全站

最近想爬一下各大招聘网站来分析一下,首先我们从实习僧开始。

首先我们打开首页分析,我需要的是整站的数据,所以就需要将所有的分类都爬下来,如果你只是想分析某一个行业的数据,实习僧的接口也非常简单。
https://www.shixiseng.com/interns?k=%s&p=1 ,这里k就是搜索关键字了,p是页码。
在这里插入图片描述
我们需要获取的是包括IT互联网到媒体设计的所有分类下的链接。都在网页源码里面,提取也很简单,就不唠叨了。

每一个链接下又含有很多个分页:
在这里插入图片描述
这个一般是获取下一页这个标签的超链接,这样最简单,当然你也可以将所有的分页标签都获取,然后判断当前页面是哪一页,然后将页码加1就行。还有一种比较简单的方法,直接将链接的p参数加1,直到返回404停止。效果和获取下一页一样,不过我更喜欢获取下一页的这种方式。

思路已经有了,就可以开始撸代码了。
scrapy的使用请参考我以前的博客:https://blog.csdn.net/Qwertyuiop2016/article/details/89416200
实习僧的字体反爬请参考我上一篇博客:https://blog.csdn.net/Qwertyuiop2016/article/details/89432868

如果想学习scrapy的可以试一下爬实习僧,不用代理也可以获取到很多数据。参考scrapy的教程一步一步来,相信你会有一些的收获的。

运行了一个多小时,爬虫正常停止,一共获取到了8万多条数据。所以实习僧首页显示的95万数据呢。难道是我没有爬全,我对比了一下类别和数量发现是全的。看了一下岗位连2017的都显示了,说明不是只显示最近的。那么只有两种情况了:实习僧首页的分类并没有显示全或者分类下的职位并没有全部显示,也有可能是首页的那个数据仅供参考,并没有实际意义。

数据的分类数量:

{'数据库': 301, 'Node.js': 30, '云计算-大数据': 352, 'Python': 305, 'IT运维': 526, 'iOS': 164, '算法': 905, 'Android': 214, 'Hadoop': 11, 'C#-.NET': 165, '物联网': 63, '2D-3D': 132, '网页-美工': 278, '特效': 52, 'UI-UE': 369, 'Flash': 36, '摄影': 228, '演艺': 36, '编导': 270, '主持-播音': 45, '记者': 151, '视觉设计': 492, '平面设计': 977, '工业设计': 102, '美术设计': 279, '校对-排版': 126, '编辑-采编': 899, 'AE': 449, '创意': 422, '咨询-顾问': 1593, '课程': 1359, '培训': 1648, '幼教': 162, '教师': 2859, '教务': 477, '会计-出纳': 764, '财务': 1945, '税务': 132, '审计': 3, '保单': 20, '业务': 821, '大堂经理': 36, '贷款': 41, '部门经理': 3, '客户经理': 308, '法务': 519, '律师': 73, '合规': 109, '投资': 839, '分析师': 360, '金融': 1804, '风控': 150, '证券': 527, '基金': 565, '外贸专员': 416, '报关员': 11, '翻译': 439, '日语': 326, '英语': 1872, '助理': 5001, '前台': 693, '行政': 361, '猎头': 475, '企业文化': 183, '招聘': 1971, '人事-HR': 3345, '志愿者': 62, '食品': 247, '材料': 102, '环保': 160, '能源': 186, '矿产': 3, '护理': 35, '生物': 519, '医药': 806, '医生': 99, '物业管理': 114, '给排水': 34, '房产销售': 471, '地产开发-策划': 169, '园林': 57, '土木': 140, '建筑': 616, '工程造价': 118, '城规-市政': 57, '物流': 679, '供应链': 281, '采购': 574, '自动化': 176, '设备': 150, '安全': 277, '生产': 241, '机械设计': 326, '质量': 303, '体育': 460, '快消': 368, '电气工程': 189, '电气设计': 57, '电子工程': 214, '半导体-芯片': 116, '光电': 80, '市场': 3769, '品牌': 628, '策划': 1851, '分析-调研': 569, '渠道': 880, '销售支持': 563, '客户服务': 1410, '公关': 620, '媒介': 364, '销售': 5003, '推广': 1349, '招投标': 80, '商务': 1840, '产品助理': 1085, '用户研究': 225, '通信': 398, '射频': 15, '集成电路': 79, '嵌入式': 228, '产品运营': 1740, 'SEO': 168, '编辑': 2707, '内容运营': 1930, '新媒体': 2631, '前端': 703, 'C-C++': 424, 'Java': 875, '测试': 1099, 'Ruby-Perl': 3, 'PHP': 159, '数据挖掘': 196}

导出的CSV数据:https://www.lanzous.com/i3uvkva
在这里插入图片描述
代码:https://github.com/kanadeblisst/ShiXiSengSpider
(代码我作了一些小改动,比如将url设为_id,所以会和数据有点出入)

下一篇博客:实习僧职位分析

猜你喜欢

转载自blog.csdn.net/Qwertyuiop2016/article/details/89431682