讀取知乎網站,為什麼跑出來的時間「第一筆的回答的時間」會晚於「最後一筆回答的時間」
想請問一下,我的程式碼有什麼地方打錯呢?
因為跑出來的時間發現「第一筆的回答的時間」晚於「最後一筆回答的時間」
import requests
headers = {'user-agent': 'my-app/0.0.1'}
r = requests.get('https://www.zhihu.com/api/v4/questions/55493026/answers',headers=headers)
response = r.text
import json
x = json.loads(response)
for n in range(len(x['data'])):
y = x['data'][n]
if n == 0:
print("firstanser:",datetime.fromtimestamp(y['created_time']))
continue
elif (n + 1)== len(x['data']):
print("finalanswer:",datetime.fromtimestamp(y['created_time']))
continue
回答列表
-
2020/03/01 下午 09:48Li Yuang贊同數:1不贊同數:0留言數:0
因為知乎並不是按照時間的先後順序來存放在x[data](這個例子的n是0~4),可以print所有的created_time與updated_time就知道了,至於是依照何種規則,我也不知道QQ。
我的作法是將x[data][n = 0~4][created_time]做list.sort,找到第一筆回答,然後排列x[data][n = 0~4][updated_time]找到最後的回答時間
-
2020/03/02 上午 00:33張維元 (WeiYuan)贊同數:2不贊同數:0留言數:0
嗨,Li Yuang 的理解是正確的,這題預設的資料應該是默認排序。
方法一:先取回資料,手動利用 created_time 排序
方法二:在呼叫 API 也加入排序的參數:https://www.zhihu.com/api/v4/questions/{...}/answers?sort_by=created (文件)
如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的 GITHUB 帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃