长话短说,最近真有点忙,现在才写第一篇关于真正关于爬虫的文章,本篇只是粗略讲解如何爬取顺丰官网展示的价格和时效。爬虫按照网页类型不同,可以分为静态网页爬虫和动态网页爬虫。动态网页的爬虫大致可以分为三步:①分析请求;②代码实现;③检测反爬。代码写完无问题后,基本就可以做到批量爬取了。
一、爬虫第一步,分析请求
打开浏览器,进入顺丰速运官网,进入运费时效价格查询界面,鼠标右键点击后选择检查,进入开发者模式(笔者使用谷歌浏览器,不同浏览器殊途同归),点击network。如果对浏览器开发者模式不习惯,可以选择使用fiddler进行抓包分析,教程网上一大堆,在这就不细讲啦。
此时可以尝试输入始发地、目的地、重量、寄件时间后点击查询,如下图所示,顺丰官网向服务器发送的是城市代码,重量和时间数据。
划重点:核心点要知道向哪个网址发送请求,采取哪种方式(Get或Post),请求头的内容,请求发送的数据,按上述说的五点,写好代码一般就能拿到数据了。但越来越多的网站已经开始在前台利用JS代码按照一定的加密规则生成一段密匙,照样能爬,只不过需要看懂JS代码,这个是后话。
AJAX请求,正常服务器返回的是JSON数据,可以看下Response中返回的JSON数据。
对JSON数据美化后的样子是这样滴。
可以很自豪的说:终于拿到顺丰了顺丰的时效价格数据。但这只是万里长征第一步...
顺丰官网爬虫难度比较大的一点是城市代码从哪来的???这里就不嗦了,就直接告诉大家答案。
划重点:城市代码的来源是点击原寄地或目的地后,根据你的选择,一步步向服务器发送请求得来的。大概的流程是选择省并点击-返回省下边所有市及编码-页面拿到市数据并向用户展示-用户选择市并点击-返回市下边所有的县及其编码。
二、代码实现
写代码,真的要做好解决各种BUG的准备...有的时候,一个BUG能搞了一个小时,很绝望!
一般爬虫经常使用到的库主要有requests,pyquery,pandas,selenium等等等,库很多,但都殊途同归。直接上代码,就不详细展开讲了。
三、测试反爬
一般主流的反爬机制有检测IP短时间访问次数、文字&字母验证码、图片验证码、短信验证码等等,不同的验证码解决手段有较大差异。
划重点:对应反爬的解决方式主要有以下方式
1.检测IP:限定爬虫频率或定期更换高匿名IP;
2.文字&图片验证码:一般需要利用机器学习;
3.图片验证码(选择图片或滑动滑块):一般利用专业三方机构提供的接口辅助验证,即把后台返回的图片利用api发送给三方机构服务器后返回数据;
顺丰反爬的手段相对简单些,就是检测IP短时间访问量,访问多了,就会被封IP。相应的解决方案也非常简单,即生成一个0-1之间的随机描述,让程序沉睡下,就可以了。
不懂Python或爬虫的,可能看不太懂。没关系,一开始我也懵逼,只要有个积跬步至千里的信念和兴趣...
来源|骨灰级物流人分享的库存品位分析
1514 阅读送外卖和送快递,物流兄弟怎么选?
1299 阅读京东物流酒水仓正式运营
1188 阅读快运网点蜕变:做云仓、盈利大增、冲刺亿元营收
1142 阅读开仓即满仓!京东物流连开韩国仁川、利川两大海外仓
918 阅读三大空运巨头宣布推出全球货运联合业务
903 阅读普洛斯中国发布2024年可持续发展报告:新经济引擎 高质量发展
925 阅读物流行业赚钱秘籍:四步教你物流产品如何卖出高价
875 阅读中国电商海外“破圈”,菜鸟海外仓“绿通”助力跨境商家突破第二增长曲线
844 阅读北美仓配一体机会和风险
865 阅读