这几天没啥事,就想着爬取一下app上面的内容。
我这边的系统是用windows,先安装好了mitmproxy跟手机证书
由于windows上面不能打开mitmproxy的调试窗口,所以这边就用的charles抓包工具进行抓包。
先编写好程序

import json
import pymongo
from mitmproxy  import ctxclient = pymongo.MongoClient(host='localhost', port=27017)db = client['igetget']collection = db['books']def response(flow):、global collectionurl='https://m.igetget.com/hybrid/api/ebook/list'if flow.request.url.startswith(url):text=flow.response.textdata=json.loads(text)books=data.get('data')for book in books:data={'title':book.get('operatingTitle'),'cover':book.get('cover'),'summary':book.get('otherShareSummary'),'price':book.get('currentPrice'),'anthor':book.get('bookAuthor')}ctx.log.info(str(data))collection.insert(data)

这样写的代码在windows的cmd中执行mitmdump -s filename.py运行程序,总是报错

然后百度了半天说是因为pymongo的版本过低,应该用insert方法插入,或者3.x的版本就用insert_one/many方法插入,看了我的版本是最新的,方法也试完了,还是不能解决。后面看了我的就是不能解决,按道理不应该啊,在pycharm中就不会存在这种问题的。
后来分析了一下报错的原因,改了下代码如下:

import json
import pymongo
from mitmproxy  import ctxdef response(flow):client = pymongo.MongoClient(host='localhost', port=27017)db = client['igetget']collection = db['books']url='https://m.igetget.com/hybrid/api/ebook/list'if flow.request.url.startswith(url):text=flow.response.textdata=json.loads(text)books=data.get('data')for book in books:data={'title':book.get('operatingTitle'),'cover':book.get('cover'),'summary':book.get('otherShareSummary'),'price':book.get('currentPrice'),'anthor':book.get('bookAuthor')}ctx.log.info(str(data))collection.insert(data)

这样就完美解决了,但是按道理不应该啊,我上面是加了global的,不知道各位大佬给解释下

Windows使用mitmdump踩过的坑相关推荐

  1. Jenkin踩过的坑

    windows安装目录踩过的坑(2.253+版本之后) 以前的版本,安装成windwos服务的话,所有的文件都会在安装目录下 ,最近下了个2.253版本在电脑上进行安装的时候,发现安装后,在安装目录下 ...

  2. React-Native android在windows下的踩坑记

    坑很多,跳之前做好准备.没有VPN的同学请浏览完本文后慎行. 你需要先安装最新版本的node.js(我最后使用的是v4.1.2),前往官网下载>> 注:我win7已经安装过Visual S ...

  3. 我在Windows系统搭建python的Hadoop+Spark环境时踩过的坑

    本人是一个最近正在研究链路预测的小白,读论文的时候有幸从导师那里获得了论文相关的算法代码,可是论文里面涉及到了spark和Hadoop,需要搭建环境,于是这只无脑的小白成功踏入了搭建Hadoop+sp ...

  4. Redis 集群部署及踩过的坑

    本文目标 要在单台机器上搭建Redis集群,方式是通过不同的TCP端口启动多个实例,然后组成集群,同时记录在搭建过程中踩过的坑. 安装准备 centos版本:6.7 redis版本:3.2.3 安装方 ...

  5. logstash导入数据到Elasticsearch踩过的坑详解

    一.前言 这篇主要记录在导入数据时候踩到的坑,这些坑总共花费我小一天的时间,记录一下. 二.正文 1.logstash显示在导入数据,ES也成功新建了索引,但是没数据 最开始遇到的是这个坑,logst ...

  6. ubuntu下vscode调试开发踩过的坑

    最近刚过安装了中文版的ubuntu18.04.1,安装完之后想在ubuntu上安装vscode做c/c++的开发调试,踩了不少坑,在此记录一下,希望大家在这条路上不要再踩同样的坑. 1.安装vscod ...

  7. 《C++之那些年踩过的坑(附录一)》

    C++之那些年踩过的坑(附录一) 作者:刘俊延(Alinshans) 本系列文章针对我在写C++代码的过程中,尤其是做自己的项目时,踩过的各种坑.以此作为给自己的警惕. [版权声明]转载请注明原文来自 ...

  8. vSAN一次人肉工程师踩过的坑

    vSAN一次人肉工程师踩过的坑 原创 李严省 虚实之路 2017-04-16 大家星期天好,这几天阳光不错,是个带家人或者女朋友出去转转的好时候.可惜这二天一夜做了VMwarevSAN人肉工程师,这二 ...

  9. Django 踩过的坑(二)

    最近在折腾Django的WSGI应用,虽然Django自带的runserver很方便,但是对于复杂的功能它就无能为力了. 首先在Windows上遇到坑了,然后在windows10自带的Ubuntu遇到 ...

最新文章

  1. 傅里叶卷积实现「万物隐身」,这个神器可试玩
  2. 大话软件测试与职业生涯
  3. hdu1251 hash或者字典树
  4. 如何在Ubuntu中使用dpkg命令卸载软件
  5. jQuery找兄弟系列next(),nextAll(),nextUntil(),prev(),prevAll(),prevUntil(),siblings()
  6. 判断android图片是否硬解码(方法)
  7. 你可能小赚,但苹果永远不亏!华强北老板说一台新iPhone只赚10块钱?
  8. BMIP002协议介绍
  9. 十二、实战底部(二)
  10. 利用dex2jar反编译apk
  11. TypeScript学习(六):函数的定义及特性
  12. layer弹出层笔记
  13. 【看别人的,学习】文本增强,再也不怕用户要修改标准界面的字段描述了
  14. 谷歌浏览器启动后,图标变成空白解决办法
  15. 达梦7数据库单机安装(命令行方式)
  16. 算法 319. 灯泡开关 python
  17. uni-app开发的h5,使用微信授权登录(前置条件+具体代码)
  18. 设计脉宽占空比50%,25%可调的脉冲发生器
  19. 解锁电机气隙公差分析之奥秘!
  20. linux 程序开发

热门文章

  1. 免疫力低吃nmn有用吗,nmn提高免疫力效果如何,掌握健康!
  2. 微信小程序swiper图片尺寸_微信小程序之swiper轮播图中的图片自适应高度
  3. 傅里叶变换红外光谱仪(FTIR)知识速递
  4. 运算长方体体积及面积
  5. WWW2023推荐系统论文集锦,推荐系统方向占比高达72/365
  6. 【研究生学术英语读写教程翻译 中国科学院大学Unit9】
  7. 关于计算机的多媒体论文题目,关于计算机多媒体专业的论文选题 计算机多媒体专业论文题目选什么比较好...
  8. 初学c语言的方法和操作
  9. 云创大数据精彩亮相第二届浙江技能大赛成果展
  10. 比较两种计算机语言的英语论文,计算机英语论文,关于计算机英语的语言特点教学方法探析相关参考文献资料-免费论文范文...