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篇筆記,就出現了很多的雷同。所以,這次活動的出發點無疑是好的,但是可笑的地方在於, 主體不明,執行不力 ,到頭來只是平白增加了很多同學的負擔罷了。

要麼本着自願的原則,鼓勵報名,寬鬆監管,自覺養成。

但是既然選擇了強制執行,就有必要搭配強有力的監管機制,不然像現在這樣,我有足夠的理由相信,這次的活動並非是爲了“同學們”,而不過是一次常見的勞民傷財的"面子工程"罷了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章