scrapy爬虫框架实现51job武汉地区所有IT岗位爬取
这一篇是直接写实现过程了,如果刚接触的话,建议先去看上一篇 一个关于scrapy框架爬虫的简单又全面的爬虫项目 大纲。
先看文件目录。
1.scrapy配置settings文件。
log在settings里配置 写入log日志 日志里面的log接着配置爬虫相关的。
基本配置关于配置settings的详情,我这里不多写了,主要写当前项目中用到的,详细的给提供两个参考。
1.资源一
代理ip的自定义中间件配置(敲黑板)
这里先插放代理ip和用户USER_AGENTS当然方法不止这一种,也可以通过自定义中间件去切换或者spiders中去切换。更多种方案这里不再提供了。51job没有反爬虫。各位的碗不会被踢翻的😁
下面我们开始配置下代理ip的自动切换两种方案。
1.settings中设置代理ip。
自定义的代理指向是在settings里面我们刚配置过的 如图 别忘记了倒包,目的是通过log计入日志2.通过自定义middlewares的代理IP中间件去请求代理ip的api接口实现切换。
这种方法和第一种区别就在于自动化程度更好,不需要手动切换ip,直接自定义代理中间件中去调用代理ip接口就可以实现初学教程,51job较为简单且没有反爬虫协议,我们这里用第一种方案去实现。
接下来,我们需要在items.py中配置我们需要的字段。
如图好了,到这一步,我们就可以正式开始写爬虫也就是spiders文件了。
如图再来看一眼,我们爬虫的爬取范围的配置文件。所谓范围就是对爬取URL链接的控制。
如图job51_CityLen和job51_ItNameLen都是划定爬取最大限度,不听话的虫子不是个好虫子。
如图看到这里有没有有一种豁然开朗的感觉????
每次启动爬虫,都需要先去读取jobUrl文件这一步的目的是通过读取文本判断是否是第一次爬取。第一次就正常爬取,不是的话,就读取并且替换当前所有导致爬虫URL翻页的所有是元素的变量,如下图:
如图聪明的你是不是早已恍然大悟!!
当然有读了,也得有写,这里我们同样思路,没页爬取完毕要更改URL链接时,先写入txt文件。
如图 如图到这里,你又学会了,以最LOW的方法实现中断续爬。恭喜恭喜。举国欢庆!!!
当然也有官方方案,这里我贴下图
可是那又怎样,我不喜欢用我感觉txt保存url链接实现的中断续爬可能更好用些。当然你可以尝试官方的解决方案。这是链接
接着,跟着我步伐我们简单的走一遍爬取逻辑。
如图如图所示,我们每次爬取翻页后,就切换相对应的URL中起翻页,切换岗位,切换城市的变量。
这里还要强调log的重要性,数据量大时,你需要通过变量对应元素的变化去判断自己的爬取逻辑是否符合规范
好了,这一步就完成了。接下来我们讲下如果清洗数据。这一步让你的爬虫瞬间提成一个层次。
这些数据不整理归类,那么再大的数据也毫无意义 看到这里你疯了吗?我们将所有薪资转换成标准单位(千/月)。按照天的的短期工作直接忽略。估计看到下面代码,你已经懵逼了,其实我写完再看时,也是懵逼的.......
薪资保存最大值和最小值最后一步没得说,先保存txt文档吧!
完成数据方便了后期mongdb聚合操作。
源码为了方便使用,我直接打包上传百度云了,如有需要请点击链接下载——————>链接
源码分享密码:a2i4 源码分享密码:a2i4