logo
Loading...

讀取知乎網站,為什麼跑出來的時間「第一筆的回答的時間」會晚於「最後一筆回答的時間」 - Cupoy

想請問一下,我的程式碼有什麼地方打錯呢?因為跑出來的時間發現「第一筆的回答的時間」晚於「最後一筆回答...

pycrawler-2,day006

讀取知乎網站,為什麼跑出來的時間「第一筆的回答的時間」會晚於「最後一筆回答的時間」

2020/03/01 下午 01:49
Python網路爬蟲討論版
Shengzhi Lin
觀看數:2
回答數:2
收藏數:0
pycrawler-2
day006

想請問一下,我的程式碼有什麼地方打錯呢?

因為跑出來的時間發現「第一筆的回答的時間」晚於「最後一筆回答的時間」

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:48
    Li 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 😃😃😃