1.确保已安装mitmproxy

如果没有安装,可以参考https://blog.csdn.net/liujingliuxingjiang/article/details/121633927?spm=1001.2014.3001.5501

2.手机设置

2.1 配置代理



2.2 Safri上下载证书

我用的是iphone,我在其他浏览器输入mitm.it,下载后不能识别成描述文件,只有在自带的Safri上下载才好用。

下载的时候选择apple版本,下载好后安装上。

安装好后检查证书是否打开

3.爬虫微信读书的今日书单

3.1 运行mitmweb

命令行输入mitmweb,如果要自己设置端口,就用mitmweb -p 端口号

3.2 手机上打开微信读书

点书单,进入“今日书单”页面,如下第一个页面,然后选择第一个“半佛推荐”,进入第二个页面。这时候mitmweb已经抓了一堆数据包了。


3.3 分析数据包

3.3.1 第一个页面分析

找到这个数据包和第一个页面显示的内容一样。

tips:抓好包之后,可以直接在搜索栏里搜索关键的url部分,就可以筛选出需要的数据包了。

从上面可以得到基本的信息:

请求的url:https://i.weread.qq.com/market/list?count=10&rn=1&subtype=0&synckey=1638434203&type=44

请求方式:get

3.3.2 第二个页面

找到这个数据包和第二个页面显示的内容一样。

返回第一个页面,另外选一个类型点进去,找到了2次的数据包,他们的url如下

url:https://i.weread.qq.com/booklist/single?booklistId=29038381_7l7INwAyj

url:https://i.weread.qq.com/booklist/single?booklistId=1637484_709GTPGzp

分析url,发现等号前面的部分是固定的,后面的数字和字母正好是上一个页面的booklistId的值。这样只需要在第一个页面上获取booklistId的值,就可以拼接出新的url,使用get请求方式获取第二个页面的内容。

3.4 代码编写

3.4.1 请求头

请求头很重要,如果用默认的请求头,会被识别出来是程序访问而不是真正的用户在访问。还有上面的内容是需要登录才能看见的,所以我们需要带上cookie里面的一些信息。

这里重要的是user-agent和一些登录信息相关的值。注意user-agent只能用手机的,用浏览器的不行。登录有时候过期了要重新登录,获取最新登录的信息。

headers = {'user-agent': 'WeRead/6.0.2 (iPhone; iOS 14.7.1; Scale/2.00)','vid': '1234567','basever': '6.0.2.16','skey':    'YHB91ONh','v':   '6.0.2.16'}

3.4.2 获取第一个页面的booklistId

因为请求后返回的是json格式,我们使用json.loads转换成字典,然后就可以一层层获取到需要的值了。

获取到booklistId之后,拼接成新的url,然后再继续发送get请求。

def get_booklistId():url = 'https://i.weread.qq.com/market/list?type=44'resp = requests.get(url, headers=headers)text = json.loads(resp.text)booklist = text["data"][0]["booklists"]for b in booklist:booklistId = b["booklistId"]books_url = 'https://i.weread.qq.com/booklist/single?booklistId=' + booklistIdget_bookname(books_url)

3.4.3 获取第二个页面的书信息

这里我就简单获取一下书名和作者名,然后打印出来

def get_bookname(url):resp = requests.get(url, headers=headers)text = json.loads(resp.text)booklist = text['booklist']['booklist']['books']for b in booklist:book_name = b['bookInfo']['title']author = b['bookInfo']['author']print('book_name',book_name)print('author', author)

3.4.4 完整代码

import requests
import jsonheaders = {'user-agent': 'WeRead/6.0.2 (iPhone; iOS 14.7.1; Scale/2.00)','vid': '1234567','basever': '6.0.2.16','skey':    'YHB91ONh','v':   '6.0.2.16'}def get_booklistId():url = 'https://i.weread.qq.com/market/list?type=44'resp = requests.get(url, headers=headers)text = json.loads(resp.text)booklist = text["data"][0]["booklists"]for b in booklist:booklistId = b["booklistId"]books_url = 'https://i.weread.qq.com/booklist/single?booklistId=' + booklistIdget_bookname(books_url)def get_bookname(url):resp = requests.get(url, headers=headers)text = json.loads(resp.text)booklist = text['booklist']['booklist']['books']for b in booklist:book_name = b['bookInfo']['title']author = b['bookInfo']['author']print('book_name',book_name)print('author', author)if __name__ == '__main__':get_booklistId()

3.5 结果显示

python爬取微信读书APP的书单相关推荐

  1. python 爬取豆瓣某一主题书单_Python爬虫 || 使用requests和xpath爬取豆瓣Top250书单内容全解。...

    昨天,我们了解了如何爬取豆瓣某一个电影固定的位置信息,包含电影名称.导演.演员及评分等,今天我们来了解一下如何爬取豆瓣Top250书单,并如何将爬取到的内容存放到本地. 废话不多说了,shou my ...

  2. python 爬取豆瓣某一主题书单_Python爬取豆瓣的各分类书单以及近期热门电影和top250的电影...

    pachon2.5.py # -*- coding: utf-8 -*- import urllib import urllib2 import re import sys # reload(sys) ...

  3. python爬取豆瓣读书并进行图形化分析

    python爬取豆瓣读书并进行图形化分析 豆瓣读书网页数据爬取并保存至csv 对数据进行分析并汇成图形 绘制散点图 图形效果展示 以下代码内容大多是团队小伙伴的杰作,而本人只是为了能让更多的人学习到知 ...

  4. html如何获取请求头变量的值。_如何使用 Python 爬取微信公众号文章

    我比较喜欢看公众号,有时遇到一个感兴趣的公众号时,都会感觉相逢恨晚,想一口气看完所有历史文章.但是微信的阅读体验挺不好的,看历史文章得一页页的往后翻,下一次再看时还得重复操作,很是麻烦. 于是便想着能 ...

  5. 用Python爬取微信好友头像,才知道好友都是这样的人

    用Pyhon爬取微信好友头像,才知道好友是这样的人 看你的微信头像,就知道你没见过世面 看你的微信名称,我就猜到了你是个渣男 看你的朋友圈,就能反映出你很好追 选择微信头像的纠结症 现如今,不管是常用 ...

  6. python 微信公众号发文章_如何使用 Python 爬取微信公众号文章

    我比较喜欢看公众号,有时遇到一个感兴趣的公众号时,都会感觉相逢恨晚,想一口气看完所有历史文章.但是微信的阅读体验挺不好的,看历史文章得一页页的往后翻,下一次再看时还得重复操作,很是麻烦. 于是便想着能 ...

  7. python如何爬取实时人流量_使用python爬取微信宜出行人流量数据

    代码地址:https://liujiao111.github.io/2019/06/18/easygo/ 工具介绍: 该工具基于微信中的宜出行提供的数据接口进行爬取,能够爬取一定范围内的当前时间点的人 ...

  8. 如何用python爬取公众号文章_如何使用 Python 爬取微信公众号文章

    我比较喜欢看公众号,有时遇到一个感兴趣的公众号时,都会感觉相逢恨晚,想一口气看完所有历史文章.但是微信的阅读体验挺不好的,看历史文章得一页页的往后翻,下一次再看时还得重复操作,很是麻烦. 于是便想着能 ...

  9. python爬取豆瓣读书top250并保存xls(含源码)

    python爬取豆瓣读书top250并保存xls(含源码) 又是霍霍豆瓣的一天O(∩_∩)O哈哈~. 目标网站:http://book.douban.com/top250/ 全军出击!!! 首先,按下 ...

最新文章

  1. 《C++ Primer Plus》学习笔记 2.1.1 main()函数
  2. Android Touch事件传递机制解析 (推荐)
  3. 置顶 | 2020学习单/读书单(顺境做事,逆境读书)
  4. 初学者的编程自学指南
  5. 对某机构为“转移内部矛盾”而嫁祸于我们的事件之真相大起底
  6. 去中心化数据基础架构Stratos融资183万美元,Spark Digital Capital等参投
  7. Java中静态代码块
  8. [转]网店博客营销之微博实战技巧:还没有做微博的掌柜看过来
  9. php i方法和get的区别,浅析PHP中的i++与++i的区别及效率
  10. android fragment 设置透明,DialogFragment背景透明设置
  11. jquery 原生控件 超大文件分片校验上传 易迁移 webuploader springboot
  12. matlab中做出球面和圆柱面,MATLAB中的柱面与球面
  13. 电路设计——发光二极管限流电阻
  14. 读研究生应该做什么?导师会帮你什么?
  15. xxljob默认登录_XXL-JOB快速入门
  16. Oracle 锁表查询
  17. java实现福利彩票抽奖_【福利】快来参与抽奖获得《Java程序设计》
  18. 一篇文章读懂NHTSA自动驾驶分级(转)
  19. 上海应用技术大学计算机研究生院,计算机考研调剂|2018年上海应用技术大学计算机学院计算机大类考研调剂信息...
  20. 网线连接问题--部分短路

热门文章

  1. 用计算机弹很多的歌,抖音用计算器弹奏音乐曲谱大全 极乐净土、体面和成都等歌曲...
  2. 谷歌浏览器设置背景图片背景图
  3. 每日一句:day06——From Zero To Hero
  4. 浅谈中国洲际潜射弹道导弹巨浪-3”的研制 2017200504012-姚柏全
  5. 一些有启发的段子【来自一位弱小的PM】
  6. 阿里巴巴直播内容风险防控中的AI力量
  7. html按钮四钟状态,按钮.html
  8. 由Monkey测试引发的跨多个进程的Android系统死锁问题分析
  9. 哪个牌子蓝牙耳机打电话清晰?通话最清晰的蓝牙耳机推荐
  10. 马平福为华侨创作中国书法艺术品受好评