Fiddler是一款常见的抓包分析软件,利用Fiddler可以详细地对HTTP请求进行分析,并模拟HTTP请求。
在爬虫中利用Fiddler,可以帮助我们更快地分析出一些动态网页加载的请求实现方式;
在有了Fiddler,经过设置之后,本地应用和服务器之间的Request和Response都将经过Fiddler转发,Fiddler以代理服务器的方式存在。
官网下载地址:https://www.telerik.com/fiddler
一般下载完成,安装之后就可以直接使用;
手动设置浏览器使用Fiddler作为其代理的方式:
浏览器选项—》高级—》网络—》连接—》设置—》手动配置代理—》HTTP代理设置为:127.0.0.1;端口号设置为8888—》确定
设置Fiddler捕获HTTP和HTTPS会话:
Tools—》Options—》HTTPS—》全部勾选—》OK
使用QuickExec命令行:
cls:清屏
select:选择某一类型会话
select html 选中所有html类型的会话
?:查找出网址中包含某些字符的会话信息
?data:查找网址中包含“data”字符串的会话信息
help:打开官方使用手册
Fiddler断点功能:
使用断点可以拦截响应数据,构造请求数据
响应时断点:
设置方式1:中断所有网址响应信息
Rules—》Automatic Breakpoints—》After Responses
取消中断设置:
Rules—》Automatic Breakpoints—》Disabled
设置方式2:中断某一网站的响应:
bpuafter xxx.yyy.com
取消方式:
bpuafter
请求时断点:
设置方式1:中断所有网址响应信息
Rules—》Automatic Breakpoints—》Before Requests
取消中断设置:
Rules—》Automatic Breakpoints—》Disabled
设置方式2:中断某一网站的响应:
bpu 网站 a
取消方式:
bpu
Fiddler会话查找功能:Ctrl+F
Fiddler的会话过滤:Filters—》Use Filters—》Actions—》Run
# 构造请求头浏览器伪装,设置Fiddler为代理服务器,方便抓包,便于调试
#使用Fiddler作为代理服务器,所爬取的网址要以具体文件或者“/”结尾
比如:http://aaa.bbb/ccc.html或者http://aaa.bbb/ddd/
#Referer一般设置为要爬取的网页的域名地址或对应网站的主页网址
import urllib.requset
import http.cookiejar
url = "http://www.baidu.com/"
# 以字典的形式设置headers
headers = {
"Connection": "keep-alive"
"User-Agent": "Mozilla/4.0 (Windows NT 9.0; WOW64) \
AppleWebKit/527.36 (KHTML, like Gecko) Chrome/65.0.3335.181 Safari/537.36"
"Accept": "*/*"
"Referer": "https://www.baidu.com/"
"Accept-Encoding": "gzip, deflate, br"#可能出现乱码,将该字段设置为utf-8或者gb2312或者省略
"Accept-Language": "zh-CN,zh;q=0.9"
}
# 设置cookie
cjar = http.cookiejar.CookieJar()
# 设置代理,让Fiddler来监控响应会话
proxy = urllib.requset.RroxyHandle({"http":"127.0.0.1:8888"})
opener = urllib.requset.build_opener(proxy,urllib.requset.ProxyHandler,
urllib.requset.HTTPCookieProcessor(cjar))
# 建立空列表,为了以指定格式存储头信息
headall = []
# 遍历headers,构造出指定格式的请求头信息
for key,value in headers.items():
item = (key,value)
headall.append(item)
# 装饰构造出的请求头信息
opener.addheaders = headall
# 将opener安装为全局
urllib.request.install_opener(opener)
data = urllib.requset.urlopen(url).read()
的的
订单
的的