搜索
查看: 326|: 0

[其他] 手把手教你使用Python提取快递信息

[复制链接]

15

主题

0

回帖

353

积分

中级会员

积分
353
发表于 2022-3-15 16:40:37 | 显示全部楼层 |阅读模式
现在快递遍布生活的角角落落,一个快递其实是信息的集合体,里面包含大量的物流信息。在面对一大堆快递信息需要我们进行按省份进行分捡,这样方便进行快递投放。我们可以通过在别人整理好的快递查询api,比如说快递100,可以通过它提供的API查询各个快递品牌的物流信息,但是它有次数限制。。自己去各个快递品牌公司官网上分析他们数据怎么请求的,怎么获得到的,然后用爬虫获取。这里就以中通快递为例(因为这个数据请求分析起来比较简单,适合入门)。
我们找到中通官网获取到数据源,通过python去获取数据信息。一般这样的网站在大量获取数数据的时候会遇到封ip的,所以在访问过程中我加上了爬虫代理,对新手来说也是入门知识,简单的实现过程如下:
#! -*- encoding:utf-8 -*-    import requests    import random    # 要访问的目标页面    targetUrl = "https://www.zto.com/?from=openv"    # 要访问的目标HTTPS页面    # targetUrl = "https://www.zto.com/?from=openv"    # 代理服务器(产品官网 www.16yun.cn)    proxyHost = "t.16yun.cn"    proxyPort = "31111"    # 代理验证信息    proxyUser = "username"    proxyPass = "password"    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {        "host" : proxyHost,        "port" : proxyPort,        "user" : proxyUser,        "pass" : proxyPass,    }    # 设置 http和https访问都是用HTTP代理    proxies = {        "http"  : proxyMeta,        "https" : proxyMeta,    }    #  设置IP切换头    tunnel = random.randint(1,10000)    headers = {"Proxy-Tunnel": str(tunnel)}    resp = requests.get(targetUrl, proxies=proxies, headers=headers)    print resp.status_code    print resp.text
在请求的时候为了避免更多的反爬虫,需要在请求的时候加上请求头header。通过爬虫程序就能拿到这个快递的所有物流信息,接下来对这个json进行分析。从网上随便找一个json解析工具,对这一串解析可得到我们想要的数据。我们爬虫过程中选择代理的时候可以咨询他们家www.16yun.cn。






若有收获,就点个赞吧










您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-11-25 22:19 , Processed in 0.138942 second(s), 24 queries .

快速回复 返回顶部 返回列表