之前,寫的一篇文章 《Python實現的站內消息群發助手-V1.0》,剛剛用了兩三次,就遇到網站改版了,今天有空重來一遍,再寫寫這個功能。遇到了requests的post提交json數據的問題,沒有解記,先記錄下來。
還是三步:
- 在用戶主頁上獲取“發送簡信”的url(
chats/new?mailto=xxx
),這一步很容易獲取
- 打開
chats/new?mailto=xxx
,獲取chat_id - POST提交,發送站內信
以上都需要登錄操作,還是用Cookie登錄方式。
第二步,通過mailto的id,獲取chat_id,解析直接獲取的url找不到,頁面的源代碼中也找不到,還是chrome檢查,一步步分析network,這里加載的是json數據。
測試出來正解的url應該是,chats/new.json?mailto=xxx
,就解析獲取到chat_id
第三步,分析發送簡信的url是http://www.lxweimin.com/chats/chat_id/chat_message
,post提交json數據
data ={"chat_message":{"content":"hello...."}}
requests.post(posturl, data=json.dumps(data), headers=headers)
還是發送不成功,post返回的是404。查了一下網上的類似的解決:
- header指明要以json方式發送
"Content-Type": "application/json"
* 加上 application/x-www-form-urlencoded
"Content-Type": "application/x-www-form-urlencoded"
以上方式都調試還是不能成功發送,只能先存疑了。之前是表單POST方式,構造表單字段即可。不知道json數據在提交時還在注意什么,希望看到的童鞋幫忙了。