一、比如打开快递网:http://www.kuaidi.com/,搜索某个单号,判断它的状态是不是已签收.
涉及到的知识点:
1.通过Fiddler抓包,获取对应的header信息,因为是get请求,不涉及到登录,所有headers中不需要写cookies。从抓包出来的信息看,请求类型:get, http://www.kuaidi.com
2.Fiddler抓包技巧,可以通过host过滤,要学会查看request和response
3.代码部分:Json数据处理(encode python-->json decode json-->python)
decode 解码 encode编码
python里面bool值是True和False,json里面bool值是true 和 false,并且区分大小写,这就尴尬了,明明都是 bool 值。
在python里面写的代码,传到json里,肯定识别不了,所以需要把python的代码经过encode 后成为 json 可识别的数据类型。
import requests
url="http://www.kuaidi.com/index-ajaxselectcourierinfo-763038720637-zhongtong.html"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}
s=requests.session()
r=s.get(url,headers=headers)
print(r.text)
print(type(r.text)) #得到的是<class 'str'>字符串类型
result=r.json()
print(result)
print(type(result)) #得到的是<class 'dict'>字典类型
data=result["data"]
print(data)
print(type(data)) #得到的是<class 'list'>列表类型
print(data[0])
print(type(data[0])) #得到的是<class 'dict'>字典类型
print(r.cookies)
print(r.status_code)
get_result=data[0]['context']
print(get_result)
if u"拍照签收" in get_result:
print ("快递单已签收成功")
else:
print ("未签收" )
Fiddler抓包
代码执行结果