国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python爬蟲入門教程--利用requests構建知乎API(三)

2020-02-16 01:35:32
字體:
來源:轉載
供稿:網友

前言

在爬蟲系列文章 優雅的HTTP庫requests 中介紹了 requests 的使用方式,這一次我們用 requests 構建一個知乎 API,功能包括:私信發送、文章點贊、用戶關注等,因為任何涉及用戶操作的功能都需要登錄后才操作,所以在閱讀這篇文章前建議先了解Python模擬知乎登錄 。現在假設你已經知道如何用 requests 模擬知乎登錄了。

思路分析

發送私信的過程就是瀏覽器向服務器發送一個 HTTP 請求,請求報文包括請求 URL、請求頭 Header、還有請求體 Body,只要把這些信息弄清楚,那么就很容易用 requests 來模擬瀏覽器發送私信了。

打開 Chrome 瀏覽器,隨便找一個用戶,點擊發送私信,追蹤一下私信的網絡請求過程。

先看下請求頭信息

請求頭 Header 中有 cookies 登錄信息,此外還有一個 authorization 字段,該字段是用于用戶認證的,同時這個字段也存在 cookies 中(為了防止 cookie 信息泄露,我打了馬賽克), requests 請求時這些信息都必須攜帶上。

再來看看請求的URL和請求體

請求URL是 https://www.zhihu.com/api/v4/messages ,請求方法是 POST,請求體

{"type":"common","content":"你好,我是pythoner","receiver_hash":"1da75b85900e00adb072e91c56fd9149"}

請求體是一個 json 字符串,type 和 content 很好理解,但 receiver_hash 是什么并不知道,需要進一步確定,不過你應該猜得出這是類似于用戶 id 的字段。

那么現在問題來了,如何通過用戶主頁的URL找到用戶的 id 呢?為了完整的模擬私信的整個流程,我特地注冊了一個知乎小號。

如果你手頭沒有多余的手機號,可以用 Google 搜「receive sms online」,網上很多提供免費在線接收短信的手機號碼,我注冊的小號主頁:https://www.zhihu.com/people/xiaoxiaodouzi

先嘗試關注小號,然后在我關注的列表中找到該小號,把鼠標移到小號的頭像處時,發現有一個 HTTP 網絡請求。

請求 url 是 https://www.zhihu.com/api/v4/members/xiaoxiaodouzi ,這個URL的后面部分「xiaoxiaodouzi」對應小號主頁URL的后面部分,這部分我們稱之為 url_token。

接口的返回數據是該用戶的個人公開信息。

{  ... "id":"1da75b85900e00adb072e91c56fd9149", "favorite_count":0, "voteup_count":0, "commercial_question_count":0, "url_token":"xiaoxiaodouzi", "type":"people", "avatar_url":"https://pic1.zhimg.com/v2-ca13758626bd7367febde704c66249ec_is.jpg", "is_active":1492224390, "name":"/u6211/u662f/u5c0f/u53f7", "url":"http://www.zhihu.com/api/v4/people/1da75b85900e00adb072e91c56fd9149", "gender":-1 ...}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和政县| 墨竹工卡县| 陆川县| 南投县| 佳木斯市| 巩义市| 辰溪县| 当阳市| 尉犁县| 商都县| 莫力| 疏勒县| 綦江县| 田东县| 双牌县| 河间市| 调兵山市| 宁陵县| 林州市| 双流县| 石家庄市| 华坪县| 亳州市| 探索| 宁蒗| 威信县| 夹江县| 理塘县| 祥云县| 灵武市| 东海县| 安达市| 古交市| 闽清县| 商城县| 齐齐哈尔市| 五峰| 临洮县| 南涧| 兴海县| 会泽县|