win7下使用mitmdump爬取得到app数据并存入mongodb

环境:win7
时间:2019-10-1

最近在学习爬取app数据,参考崔庆才大佬的书 《python3网络爬虫开发实战》中的第十一章

在安装好mitmdump后,运行自定义脚本开始抓包却出现了错误。

现在记录下遇到的问题:

安装mitmproxy

pip install mitmproxy

按照网上的教程安装证书,给手机也安装证书
启动mitmproxy(win换环境下,无法直接开启mitmproxy)

mitmdump
mitmweb

要爬取的数据(得到app—电子书—新书top100)

import pymongo
import mitmproxy
from mitmproxy import ctx
import json

class Counter(object):
    """docstring for Counter"""
    def __init__(self):
        self.client = pymongo.MongoClient("localhost")
        self.db=self.client.igetget
        self.collection = self.db.books
    def updated_book(self,data):
        self.collection.insert(data)


Counter=Counter()


def response(flow):
    global collection
    ctx.log.info("-----------")
    url="https://entree.igetget.com/ebook2/v1/ranklist/list?count="
    #可以根据自己想要爬的链接换上
    if flow.request.url.startswith(url):
        text=flow.response.text
        data=json.loads(text)
        books=data.get("c").get("data")
        for book in books:
            data={
            "title":book.get("operating_title"),
            "cover":book.get("cover"),
            "price":book.get("price"),
            "summary":book.get("other_share_summary")
            }
            ctx.log.info(str(data))
            Counter.updated_book(data)

下面是教材里面的脚本
win7下使用mitmdump爬取得到app数据并存入mongodb_第1张图片
我一开始加载教材上的脚本,导入MongoDB发生错误,后来看网上说,把MongoDB放进类里边,再在函数里边调用就可以了。

在运行脚本前请确认MongoDB服务已开启,否则会出现UNreachable错误

你可能感兴趣的:(win7下使用mitmdump爬取得到app数据并存入mongodb)