|
现在快递遍布生活的角角落落,一个快递其实是信息的集合体,里面包含大量的物流信息。在面对一大堆快递信息需要我们进行按省份进行分捡,这样方便进行快递投放。我们可以通过在别人整理好的快递查询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。
若有收获,就点个赞吧
|
|