python高级爬虫笔记(4)

前言

到这里,python爬虫部分的复习也就告一段落了,当然,除了scrapy,老实说,对于平常爬取几千条这种小打小闹的爬虫,并没有去深入研究scrapy的必要(当然,了解还是要了解一下的)。

之前学习爬虫,因为需求的原因,只学习了网页爬虫。趁着寒假有空,再来看一看app爬虫是啥样的吧。

mitmproxy

官网

github

安装

  1. 安装本体
brew install mitmproxy
  1. 安装python包
pip install mitproxy
  1. 安装证书

    1. shell中输入mitmdump

    2. 将/Users/{用户名}/.matplotlib/目录下的mitmproxy-ca-cert.pem发送到移动端(隔空投送即可)

    3. 设置 中信任证书

ps.使用 shift+cmd+. 可以查看隐藏文件

  1. 连接代理

    1. 使用ifconfig查找本机的ip地址

    2. 找到inet,如下图所示,IP地址为192.168.3.6

      image-20200118233542424

​ 在设置->无线局域网->无线局域网配置->配置代理

ps. mitmproxy的端口是8080

配置部分就到这里,然后测试一下配置是否正确。

  1. 在命令行中输入 mitmproxy , 进入mitmproxy的数据流界面。

  2. 打开任意的app,然后发现数据流界面开始跳出很多的响应字段,ok,配置正确。

    image-20200118234716015

上图为结果展示,可以点击字段进入查看详细的信息

image-20200118235147625

ps. 这里列一下流界面的快捷键

?:帮助
q:返回 或退出
z:清屏
j:上一个或向上滑动
k:下一个或向下滑动
回车键:查看选中的请求
h:查看 请求内容 下一个
l:查看请求内容 上一个
tab:查看请求内容 下一个

至此,所有的准备工作就都已经完成了,接下来选择一下实验目标吧

mission start

首先当然是选择一个目标app,这里我选择的是 超星学习通 。这个寒假学校布置了一个读书笔记的任务,叫做21天习惯养成,满满的 形式主义 的感觉,所以,我就把所有的数据都用爬虫爬下来,来分析一下这个21天习惯养成的可行性吧。

mitmproxy只能抓包,但是抓完之后就罢工了。所以这里使用mitmdump,它可以和python结合使用,对返回的数据进行一个处理。

def response(flow):
    url = 'https://groupyd.chaoxing.com/apis/topic/getTopicListWithPoff?'
    
    if flow.request.url.startswith(url):
        data_list = json.loads(flow.response.text)['data']['list']
        print(data_list)
        json_str = json.dumps(data_list,ensure_ascii=False)
        with open('data.json','a+') as f:
            f.write(json_str)

将上述的代码写入mitmuse1.py文件中,然后运行

mitmdump -s mitmuse1.py

这里我先把所有的json数据写入到一个文件里面,然后再对数据进行统一的分析,这样的好处是占用内存小。

分析

image-20200119093308992

截屏2020-01-19上午10.05.45

排名第一的竟然是 《活着》 !?因为读过这本书,所以我觉得这个结果过于魔幻现实了。

余华的这本书绝对不是《水浒传》那种老少咸宜的读物,甚至于高中时期我们将他的书戏称为“黑暗圣经”,两倍于第二名《红楼梦》的结果让我有点无法接受(老实说红楼梦排第二也挺魔幻的,但是考虑到院里女生居多就不讨论了…)

排名第三的中规中矩,《平凡的世界》 我也读过,这是如中当年的入学推荐读物(满满的回忆)

第四名。。。???????????????

于是我开始打发假期的无聊时光。

进行文本进行对比筛查,经过一系列的折腾之后,得到如下的结果。

image-20200119094246243

这里只打印出了差异值 <=5 的文本,可以看到,差异值越低,文本的相似度越高。

最终可以得出结论,仅仅是在我院的内部的关于活着的237篇笔记,就出现了很多的雷同。所以,这次活动的出发点无疑是好的,但是可笑的地方在于, 主体不明,执行不力 ,到头来只是平白增加了很多同学的负担罢了。

要么本着自愿的原则,鼓励报名,宽松监管,自觉养成。

但是既然选择了强制执行,就有必要搭配强有力的监管机制,不然像现在这样,我有足够的理由相信,这次的活动并非是为了“同学们”,而不过是一次常见的劳民伤财的"面子工程"罢了。

发布了9 篇原创文章 · 获赞 6 · 访问量 974

猜你喜欢

转载自blog.csdn.net/Acher_zxj/article/details/104186800
今日推荐