爬虫学习 pyspider和scrapy小结 / 与其他工具对比

本文总结了作者在学习和使用pyspider及scrapy爬虫框架的心得体会,强调了框架在简化爬虫开发中的重要性。pyspider虽然文档齐全但网上资源较少,适合基础需求;而scrapy灵活性高,网络资源丰富,适合复杂场景。作者认为,对于业务公司而言,选择稳定、低成本的技术更为关键。

从火车头了解了翻页与正则表达式带入了爬虫原理、后python的urllib和requests彻底梳理了爬虫过程,之后引入phantomjs chromedriver这些彻底解决了爬虫问题,但是这些太琐碎,而且反爬虫越来越厉害,必须升级爬取武器到专业级别。

用python实现了基本爬虫之后,相比火车头工具,再次体验到了代码在灵活度和速度方面的魅力(之前用python用正则表达式处理文本数据速度是excel的10倍),数据采集全面转向python,对爬虫的关键几步也更加清晰:

1,构造url:包括单页、逐层深入、翻页、传入一个网页list;各种参数例如headers参数
2,访问并下载目标页面
3,目标页面类型定义与解析,解析是根本,看返回的目标类型。
4,存储
5,各种配置,例如限制速度
6,高阶的:各种反爬虫、分布式、断网怎么办、防止重复爬!

上面的流程有很多技术细节,其中从技术上可以分为三个:

1,了解http相关的知识,例如访问、下载,还有分布式,这块东西太多了,绝非易事!因此最容易产生各种问题。
2,构造url,这里包括url表达和相关的参数,积累多了也就熟练了。
3,phantomjs操作
4,解析数据,正则表达式(虽然使用起来最麻烦,但是实际操作来看必不可少)、bs4、css、xpath这些,掌握的方法也是多用,多积累代码。

以上应用爬虫的人最关心同时最应该花费心思的就是技术的第2、3、4,对于技术好的人,第3点速度稍慢,自有解决方法,但是对于我这个业务人员来说,完全没必要花费那么多时间深入了,用phantomjs加上sleep10秒中,什么都解决了。

因此必须用框架,只focus最核心的,其他的例如http知识、分布式、断网、防止重复爬取等还是直接站在大牛们的肩上吧!于是 pyspider和scrapy都必须学习了。

个人经过实践感觉,pyspider更加简单,但是网上资料少,只要好好读官方文档基本能解决90%的问题,因此对我这种抄代码为主的用户来说不够灵活,例如想用phantomjs实现模拟点击。scrapy相对复杂,而且网络上代码多,因此相对灵活。

后面分别按照不同阶段代码积累并分享出来!

与其他工具对比:

今日看了某大型互联网公司搜索团队开发的产品,访问网页时候就出问题了,并且其解析规则更麻烦,而且各个用户之间没有共享,突然觉得访问、下载这两步真是不是那么简单的,这些还是给框架去做吧,毕竟开源产品遇到的问题更多!

作为业务公司还是要更多关注业务!技术只是实现业务的手段而非核心竞争力,因此只用成熟的技术就好!稳定、低成本!靠谱!

再来一个案例,看到网上一个使用代理池爬取微信的视频教程,程序员自己写的代码,真的和scrapy差距很大,网页访问和代理代码写得都乱,还是用scrapy吧。

## 01、数据介绍数据整理全国30个省份制造业细分行业产值,能够反映一定时期内细分行业工业生产总规模总水平的指标,是计算工业生产发展速度主要比例关系、计算工业产品销售率等其他经济指标的基础。先进制造业数据可用于两业融合测算。数据名称:全国30省-制造业细分行业产值/先进制造业细分行业产值数据数据年份:2001-2022年## 02、数据指标农副食品加工业;食品制造业;饮料制造业;烟草制造业;纺织业;纺织服装鞋帽制造业;皮革、毛皮、羽毛(绒)极其制品业;木材加工及木、竹、藤、棕、草制品业;家具制造业;造纸及纸制品业;印刷业记录媒介的复制;文教体育用品制造业;石油加工、炼焦及核燃料加工业化;学原料及化学制品制造业;医药制造业;化学纤维制造业;橡胶塑料制品制品业;非金属矿物制品业;黑色金属冶炼及压延加工业;有色金属冶炼及压延加工业;金属制品业;通用设备制造业;专用设备制造业;汽车制造业;其他运输设备制造业;电气机械及器材制造业;通信设备计算机及其他电子设备制造业;仪器仪表及文化、办公用机械制造业;其他制造业;废弃资源废旧材料回收加工业;制造业总产值印刷业记录媒介的复制;石油加工、炼焦及核燃料加工业;化学原料及化学制品制造业;医药制造业;橡胶塑料制品制品业;非金属矿物制品业;黑色金属冶炼及压延加工业;有色金属冶炼及压延加工业;金属制品业;通用设备制造业;专用设备制造业;汽车制造业;其他运输设备制造业;电气机械及器材制造业;通信设备计算机及其他电子设备制造业;仪器仪表及文化、办公用机械制造业;废弃资源废旧材料回收加工业
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值