长话短说,最近真有点忙,现在才写第一篇关于真正关于爬虫的文章,本篇只是粗略讲解如何爬取顺丰官网展示的价格和时效。爬虫按照网页类型不同,可以分为静态网页爬虫和动态网页爬虫。动态网页的爬虫大致可以分为三步:①分析请求;②代码实现;③检测反爬。代码写完无问题后,基本就可以做到批量爬取了。
一、爬虫第一步,分析请求
打开浏览器,进入顺丰速运官网,进入运费时效价格查询界面,鼠标右键点击后选择检查,进入开发者模式(笔者使用谷歌浏览器,不同浏览器殊途同归),点击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或爬虫的,可能看不太懂。没关系,一开始我也懵逼,只要有个积跬步至千里的信念和兴趣...
来源|共探AI时代的供应链数智化发展之路!《数智化供应链白皮书》正式发布
1699 阅读外卖战OR即配战?京东美团博弈,快递受伤?
1652 阅读零售企业仓储博弈:自营VS外包
1391 阅读4个低碳奖项丨2025 LOG低碳供应链&物流创新案例申报开启!
1264 阅读顺丰再出手,领投无人车公司「白犀牛」
1021 阅读外贸出口转内销商家在抖音电商成交3.6亿元
973 阅读5000种汽车配件丝滑入仓,菜鸟海外仓推出汽配出海解决方案
863 阅读投资12.5亿元!京东物流、胖东来联手布局供应链产业基地
853 阅读快递绿色包装进校园,极兔全方位展示全链路绿色管理成果
773 阅读小红书与淘宝天猫达成战略合作:种草全链路方案升级
726 阅读