长话短说,最近真有点忙,现在才写第一篇关于真正关于爬虫的文章,本篇只是粗略讲解如何爬取顺丰官网展示的价格和时效。爬虫按照网页类型不同,可以分为静态网页爬虫和动态网页爬虫。动态网页的爬虫大致可以分为三步:①分析请求;②代码实现;③检测反爬。代码写完无问题后,基本就可以做到批量爬取了。
一、爬虫第一步,分析请求
打开浏览器,进入顺丰速运官网,进入运费时效价格查询界面,鼠标右键点击后选择检查,进入开发者模式(笔者使用谷歌浏览器,不同浏览器殊途同归),点击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或爬虫的,可能看不太懂。没关系,一开始我也懵逼,只要有个积跬步至千里的信念和兴趣...
来源|玛氏中国|2025年度冠军宠物进口货运代理服务遴选
2929 阅读知名网络货运平台去年营收397.97亿,净利润实现1.4亿元
1145 阅读极兔云仓发展迅猛,“618”服务再突破
1034 阅读多条航线运价下跌!美西暴跌超三成!
962 阅读获菜鸟1.7亿美元投资,年营收12.5亿美元,这家跨境物流巨头即将上市
984 阅读即时零售行业深度报告:即时零售万亿高成长赛道,平台模式三国杀开拓长期增量
945 阅读仓库管理升级:需要打破一些惯性思维
861 阅读物流企业如何判断“大客户业务机会”是不是靠谱
879 阅读刘强东分享会:京东做餐饮酒旅都是为供应链
857 阅读618单量越多为何时效越快?京东物流智狼重塑仓储履约
844 阅读