【fiddler】如何使用fiddler抓取python请求
来源:互联网 发布:mac的dock怎么设置 编辑:程序博客网 时间:2024/05/16 14:38
使用 Fiddler 可以很容易抓取到从浏览器发出的 http 请求,然而在使用程序模拟 http 请求时,fiddler 抓取不到发送的这些请求,解决方法:就是在程序中添加代理。
开启fiddler后浏览器中所有访问几乎都可以在fiddler查看到与之对应的http请求,由此可以判断程序所构造的http 请求是否正确。对于python请求的抓取,只需设置成 127.0.0.1:9988 即可;需要一个代理来对网络请求进行过滤展示:
Python程序中设置HTTP代理,下面以 Python 发送http 请求为例说明:
urllib2/urllib 库的代理设置:
urllib2
是Python标准库,功能很强大,只是使用起来稍微麻烦一点。在Python 3中,urllib2不再保留,迁移到了urllib模块中。urllib2中通过ProxyHandler来设置使用代理服务器。
urllib2.urlopen("http://www.csdn.com")
这样发的请求使用 fiddler 抓不到;
添加代理的方法:
import urllib2proxy = urllib2.ProxyHandler({'http': '127.0.0.1:8888'})opener = urllib2.build_opener(proxy)response = opener.open('http://wwww.csdn.com')print response.read()
也可以用install_opener将配置好的opener安装到全局环境中,这样所有的urllib2.urlopen都会自动使用代理。
import urllib2proxy = urllib2.ProxyHandler({'http': '127.0.0.1:8888'})opener = urllib2.build_opener(proxy)urllib2.install_opener(opener)response = urllib2.urlopen('http://wwww.csdn.com')print response.read()
在Python 3中,使用urllib。
import urllibproxy_handler = urllib.request.ProxyHandler({'http': 'http://127.0.0.1:8888/'})opener = urllib.request.build_opener(proxy_handler)r = opener.open('http://www.csdn.com')print(r.read())
httplib库的代理设置:
解决方法如下:
import httplibhttpClient = httplib.HTTPConnection("127.0.0.1",8888,timeout = 30)
requests库的代理设置(官网):
requests是目前最优秀的HTTP库之一,也是我平时构造http请求时使用最多的库。它的API设计非常人性化,使用起来很容易上手。给requests设置代理很简单,只需要给proxies设置一个形如 {'http': 'x.x.x.x:8080', 'https': 'x.x.x.x:8080'} 的参数即可。其中http和https相互独立。如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求:
import requestsproxies = { "http": "http://10.10.1.10:3128", "https": "http://10.10.1.10:1080",}requests.get("http://example.org", proxies=proxies)
你也可以通过环境变量 HTTP_PROXY 和 HTTPS_PROXY 来配置代理。
$ export HTTP_PROXY="http://10.10.1.10:3128"$ export HTTPS_PROXY="http://10.10.1.10:1080"$ python>>> import requests>>> requests.get("http://example.org")
若你的代理需要使用HTTP Basic Auth,可以使用 http://user:password@host/ 语法:
proxies = { "http": "http://user:pass@10.10.1.10:3128/",}
要为某个特定的连接方式或者主机设置代理,使用 scheme://hostname 作为 key, 它会针对指定的主机和连接方式进行匹配。
proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'}
注意,代理 URL 必须包含连接方式。
可以直接设置session的proxies属性,省去每次请求都要带上proxies参数的麻烦。
s = requests.session()s.proxies = {'http': '127.0.0.1:9988'}print(s.get('http://httpbin.org/ip').json())
***************************************************************************************************
测试一下:
- 【fiddler】如何使用fiddler抓取python请求
- Fiddler抓取HTTP请求
- Fiddler抓取HTTPS请求
- fiddler抓取手机请求
- Fiddler工具使用-抓取https请求
- Android 使用Fiddler抓取Https请求
- Fiddler—Fiddler抓取HTTPS请求
- Fiddler如何抓取接口
- Fiddler抓取手机http请求
- 配置 Fiddler 抓取 HTTPS 请求
- Fiddler抓取APP网络请求
- Fiddler抓取HTTP请求详解
- fiddler抓取https请求数据
- 如何使用fiddler模拟http请求
- 如何使用fiddler转发请求功能
- 使用Fiddler抓取iPad上的http请求
- 使用Fiddler在手机上抓取https请求
- 使用Fiddler抓取Android数据包
- 如何基于TCP/IP协议进行MFC Socket网络通讯编程
- 浅谈存储系统的故障处置基本思路
- 解决SpringBoot多工程时jar包中注解不能扫描生效问题
- windows命令行生成文件夹目录树状结构
- 使用STL在DB块中寻找相同字符
- 【fiddler】如何使用fiddler抓取python请求
- 索引
- 文章标题
- wxPython之按下按钮,改变图片
- Codeforces Round #441 (Div.2)
- Django学习笔记(九)--django框架的bug总结
- Android 进程保活措施
- **深信服软件测试笔试加面试**
- trywithresource使用方式