参考:https://cloud.tencent.com/developer/article/1697758​​​​​​

前言

先说一下走过的坑,在一开始的思路就是去找个快递查询的网站查一下快递,然后抓一下包就能拿到我们需要的内容,然后写个爬虫去追踪快递信息,结果一百度发现基本国内查快递的网站用的都是快递100的API,申请个API还要提供一个网站供对方审核,并且还有次数限制。不申请API直接爬得到的物流信息被各种加密,使用python爬虫获取的到的物流信息都并不可靠,这篇文章主要是用来做python爬虫分析的。

看一篇知乎说,http://m.46644.com/express可以正确获取物流信息,但是在测试中发现需要输入验证,这个问题如果以后有时间,可以试试能不能解决。文章参考:https://zhuanlan.zhihu.com/p/136658682

项目分析

如何获取真正的网址,拿到相对应的接口? chrome浏览器F12检查,随便输入一个快递单号,点击查找。找到

query?type=shentong&postid=773036432685909&temp=0.0

这个文件。找到Request URL:复制网址。分析网址:

https://www.kuaidi100.com/query?type=shentong&postid=773036432685909&temp=0.03191355265516216&phone=

可以看到postid就是我们的快递单号,type就是各个快递公司的名字拼音的简称。那等下就可以定义这个字典去存放各个公司名字的简称拼接网址。

找到Preview=>>对应的data可以看到context就是物流信息。等下可以通过js解析获取对应的字段。

项目实现

完整代码如下:

import urllib.request
import jsonkd_dict = {1: 'shentong', 2: 'youzhengguonei', 3: 'yuantong', 4: 'shunfeng', 5: 'yunda', 6: 'zhongtong'}class YU(object):passdef Check() :
#建立查询框架while True:print("输入要查询快递公司:")print("1.申通  2.EMS邮政  3.圆通 4.顺风 5.韵达 6.中通  0.退出\n ")choose = int(input("请选择您的快递公司:"))while choose not in range(0, 7):choose = int(input("抱歉暂不支持此公司请重新选择:"))if choose == 0:breakkd_num = input("请输入快递单号:")#对js文件进行解析url = "http://www.kuaidi100.com/query?type=%s&postid=%s" % (kd_dict[choose], kd_num)response = urllib.request.urlopen(url)html = response.read().decode('utf-8')target = json.loads(html)#判断status的是不是200,是200才可以正常访问 ,获取对应的datastatus = target["status"]if status == '200':data = target['data']# print(data)data_len = len(data)# print(data_len)# print("\n")#for循环遍历,获取对应的字段。for i in range(data_len):print("\n时间: " + data[i]['time'])print("状态: " + data[i]['context'] + "")print("\n感谢使用!\n")breakelse:print("输入有误请重新输入!\n")#程序循环。
while True:YU.Check()out = input("按任意数字退出(其他键继续).........")if out >= '0' and out <= '7':breakelse:print("\n")continue

Pyhton3网页爬虫查询快递状况相关推荐

  1. python制作查询网页_Python制作简单的网页爬虫

    1.准备工作: 工欲善其事必先利其器,因此我们有必要在进行Coding前先配置一个适合我们自己的开发环境,我搭建的开发环境是: 操作系统:Ubuntu 14.04 LTS Python版本:2.7.6 ...

  2. JavaScript网页制作--京东快递单号查询

    JavaScript网页制作–京东快递单号查询 上篇讲到了京东网页的一个可能不被大多数人熟知的小功能,S键自动获得焦点,相比于那个功能,这个快递单号查询的功能可能更明了一点,虽然我也觉得很鸡肋.在网页 ...

  3. python爬虫网站接口的使用——将网页上的输入内容的接口转移到对应的爬虫中(通过爬虫查询相关网页的信息)

    python爬虫网站接口的使用 网站任何输入的对话框,都对应着相关的接口 找到接口对应的关键字,就可以使用爬虫输入关键字进行操作了 通过ip38网站实现爬虫查询ip归属地 登陆相关的网址,随便查询一个 ...

  4. Python带你轻松进行网页爬虫

    前不久DotNet开源大本营通过为.NET程序员演示如何在.NET下使用C#+HtmlAgilityPack+XPath进行网页数据的抓取,从而为我们展示了HtmlAgilitypack利器的优点和使 ...

  5. 您访问的网页出错了! 网络连接异常、网站服务器失去响应_数据分析系列——静态网页爬虫进阶(requests)...

    在之前"数据分析系列--数据分析入门"16篇中有与爬虫的相关内容,介绍的相对简单.静态网页爬虫进阶系列将分别从网页的自动爬取(Requests).网络数据解析(BeautifulS ...

  6. python(六)动态网页爬虫

    python(六)动态网页爬虫 什么是动态网页爬虫 动态网页 在网站不重新加载的情况下(网页的url不发生改变),通过ajax技术动态更新网站中的局部数据. ajax 异步JavaScript和XML ...

  7. 如何设计一个网页爬虫

    作为长期深耕在爬虫行业的程序猿来说,对于设计一个网页爬虫想必很简单,下面就是一些有关网页爬虫设计的一些思路,可以过来看一看. 第一步:简述用例与约束条件 把所有需要的东西聚集在一起,审视问题.不停的提 ...

  8. 教你查询快递单号物流,并筛选已签收还有的物流单号

    快递在运输的过程中都会难免出现一些状况,所以就需要跟踪查询快递单号物流,及时发出现问题,在第一时间处理,不管是对卖家还是买家都能减少一些损失吧,那么当一些物流都显示已签收后,还有物流动态,如何快速筛选 ...

  9. 利用Fiddler手机抓包对ONE·APP网页爬虫实现电影资讯微信Java开发

    前言 好久没写博客了,打算把之前做的一个电影评分资讯推送的微信开发全程记录一下,适合对网络爬虫.微信开发感兴趣的童鞋.在教程开始之前,我想先引出两个问题(这次写博客假装很有条理的样子= =) 1. 为 ...

最新文章

  1. 自学python需要安装什么软件-零基础入门Python怎么学习?老男孩python用什么软件...
  2. 鸟哥的Linux私房菜(基础篇)-第四章、安装 CentOS 5.x 与多重开机小技巧
  3. 【数据结构与算法】之深入解析“学生出勤记录I”的求解思路与算法示例
  4. opencv:灰色和彩色图像的像素直方图及直方图均值化的实现与展示
  5. c ++查找字符串_C ++类和对象| 查找输出程序| 套装3
  6. 算法岗百里挑一热爆了,全球AI大厂薪酬大起底
  7. Java虚拟机栈详解
  8. 《南溪的目标检测学习笔记》——PyTorch模型搭建模板
  9. c++中的构造函数和析构函数
  10. python中关于requests里的timeout()
  11. mac被限制什么意思_苹果ip完美解决电脑ip被限制问题
  12. Automatic Lip-reading with Hierarchical Pyramidal Convolution and Self-Attention for Image Sequences
  13. 【约束优先级问题二】动态高度cell
  14. X-Order创始人陶荣祺:Libra让所有互联网应用成为开放金融的一部分
  15. 新型能力的分解与组合
  16. OASIS协议标准文档的解读_第一部分
  17. R语言 | 编写自己的函数
  18. android 儿童 汉字 学习 游戏,儿童学汉字游戏app官方下载-儿童学汉字游戏v3.7 安卓版-腾牛安卓网...
  19. 英语和汉语语法方面的区别(语言类型学)
  20. 利用Vivado进行MicroBlaze处理器应用教程

热门文章

  1. 文献阅读2019-Computer-aided diagnosis system for breast ultrasound images using deep learning
  2. windows 查看端口号
  3. 实验室cobot开发小tips
  4. nodejs实现公众号服务URL绑定验证,nodejs实现公众号关注并回发送一条消息,以及关注之后的聊天自动回复消息
  5. 学生可以用计算机干什么,好学生用电脑干什么
  6. js + css 实现手风琴
  7. (6) IFC构件与空间的关系 (Industry Foundation Class)
  8. 手机客户端设置同济邮箱的方法
  9. spi sync async
  10. 古老 IP 新玩法,盘点传统文化出圈秘籍