最近一直在做爬虫相关的工作
爬12306算是爬虫里的经典项目了(我觉得基本类似于深度学习里的手写字符串识别项目了hhhh)
和普通的爬虫项目不同,因为要用到实际的工作当中,所以整个流程进行了分布式处理:
大概思路如下:
- 得到车次的全量表,存入数据库(方便以后更新)
- 从数据库中得到车次,从携程上爬取对应车次的中间站信息网页
- 将原网址和对应转存网址的链接都统一存在redis里
- 将网址内容保存在ks3中
- 根据需求从redis里找到对应链接,从ks3中下载内容进行解析
这期间考虑了几个问题:
- 因为12306太容易崩了,所以为了爬虫的稳定性,除了总表是从12306里爬下来的以外,其他的部分都是从携程爬下来的。幸运的是携程没有反爬机制:)
- 分布式的好处在这里可能体现的不明显,对长期任务来说,一些比较难爬取的网页可以一次性存储到ks3中,根据需求多次解析。简单快捷。
- 依旧使用的是scrapy框架,所以代码部分没有体现redis存储和ks3存储(这一部分在自己搭建的架构的middlewares文件里修改)
老规矩,先把参考的微博列上:https://blog.csdn.net/u013243986/article/details/66972705
根据上面连接中的指南,可以得到这样的一个连接: