博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mitdump爬取当当网APP图书目录
阅读量:6453 次
发布时间:2019-06-23

本文共 1906 字,大约阅读时间需要 6 分钟。

因为mitmproxy没办法连接数据库所以,只能先把结果保存为txt文件,再读取到数据库中。

在滑动APP界面时,对代码进行分析

import requestsimport reimport urllibdef requets(flow):    flow.request.headers['User-Agent'] = 'MitmProxy'    print(flow.request.headers)

保存到文本:

 

爬取程序

from mitmproxy import ctximport jsondef response(flow):    print('获取列表数据中...')    #url = 'http://mapi.dangdang.com/index.php?cat_path_text=%E6%80%BB%E6%A6%9C&img_size=b&bang_name_text=%E5%9B%BE%E4%B9%A6%E7%95%85%E9%94%80%E6%A6%9C&access-token=&permanent_id=20190405192112099238317917598184509&ischildren=0&bang_name=bestsell&user_client=android&pagesize=10&union_id=537-100380&time_code=849e796eaa9e66cae342dd1f47c5f032&action=bang_tushu&page=5&global_province_id=151&cat_path=01.00.00.00.00.00&client_version=9.4.2&udid=c906965ad731be703305409f738a1bad&timestamp=1556893369'    url = flow.request.url    if flow.request.url.startswith(url):        text = flow.response.text        #print(text)        data = json.loads(text)        books = data.get('products')        for book in books:            info = {                '书名': book.get('product_name'),                '作者': book.get('author'),                '价格': book.get('price').get('dangdang_price'),                '封面图片': book.get('img_url'),            }            ctx.log.info(str(book))            with open('D:\\books.txt', 'a', encoding='utf-8') as f:                f.write(json.dumps(info, ensure_ascii=False) + '\n')

 

 

结果

 

读取到数据库中

import pymongofrom pymongo import MongoClientimport jsonclient = pymongo.MongoClient('mongodb://admin:admin@localhost:27017/')db = client['books']collection = db['book']with open('D:\\books.txt', 'r+', encoding='utf-8') as f:    for i in f.readlines():        new = json.loads(i)        try:            if collection.insert(new):                print("成功保存到MongoDB")        except Exception:            print('someing wrong with MongDB')

 

转载于:https://www.cnblogs.com/Mayfly-nymph/p/10900231.html

你可能感兴趣的文章
IE8兼容@media和mp4视频的解决方案
查看>>
第二周总结
查看>>
ASP.NET完整打包卸载更新攻略(By Installshield 2010)
查看>>
[120_移动开发Android]006_android开发之数据存储之sdcard访问
查看>>
[若有所悟]IT小兵总结IT人特点及挽留IT人才的九大策略
查看>>
概率图模型建模、学习、推理资料总结
查看>>
【转】知道这20个正则表达式,能让你少写1,000行代码
查看>>
自定义 启动和关闭 oracle 的命令
查看>>
用ASP.NET Core 2.0 建立规范的 REST API
查看>>
SQLite数据库、ListView控件的使用
查看>>
Storm程序的并发机制(重点掌握)
查看>>
Quartz
查看>>
正则表达式介绍
查看>>
初识Scala反射
查看>>
第三十九天
查看>>
Redis详解
查看>>
4Sum——LeetCode
查看>>
论程序员加班的害处
查看>>
codeblocks快捷键
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>