mItmproxy的使用(应用于爬虫)

Mitmproxy的使用

本文主要是对mitmproxy的使用做基本的整理,方便后续自己的使用查询。

  • 基本介绍
    首先我们定义一个函数,如下:
def request(flow):
    flow.request.headers['User-Agent'] = 'Mitmproxy'
    print(flow.request.headers)

参数flow,我们可以通过flow.request属性获取当前请求,

  • 日志输出
    调用ctx模块:from mitmproxy import ctx引入,然后通过ctx.log.xxx输出:
  1. ctx.log.info(显示白色)
  2. ctx.log.wran(显示黄色)
  3. ctx.log.error(显示红色)
  • Request
    定义request()方法:
def request(flow):
    flow.request.headers['User-Agent'] = 'Mitmproxy'
    print(flow.request.headers)

通过flow.request.xxx获取相应属性,如:

  1. flow.request.url(请求的url地址)
  2. flow.request.headers(请求头信息)
  3. flow.request.cookies(cookies信息)
  4. flow.request.host(host标头值)
  5. flow.request.method(请求方法)
  6. flow.request.port(请求的端口)
  7. flow.request.scheme(请求协议)

更多内容请查看mitmproxy的API接口
不仅可以获取相应的值,我们也可以对其值进行修改:

flow.request.url = 新的url

通过这种方式我们就可以进行修改和伪造请求,通过此方式我们知道,在日常上网的过程中,有时候我们输入的url是正确的,但是页面内容却与我们所需要看到的不同, 有的钓鱼网站可能是通过此方式进行改变网页信息的,因此我们在日常上网过程中应注意网络安全。
在日常爬虫过程中,我们可以通过修改cookies和添加代理的方式来规避网站的反爬。

  • Response
    对于爬虫来说,我们更想获取其响应的内容,对于响应来说,我们采用response()方法来获取响应的内容:
    通过flow.response.xxx获取相应属性,如:
  1. flow.repsonse.status_code(获取响应的状态码)
  2. flow.repsonse.headers(获取响应头信息)
  3. flow.repsonse.cookies(获取响应的cookies信息)
  4. flow.repsonse.text(获取响应的内容)

通过上述的这些基本方法再加上一些数据的存储技术,就可以实现对数据的抓取了

你可能感兴趣的:(Python爬虫)