有时刷知乎瞥到了挺好玩的答案,但是手一滑退出去了,再想找到那个答案真是大海捞针。

今天我又遇到了这种情况,所以干脆想用之前的知乎爬虫把全部答案爬下来,然后再筛选。

突然发现之前的爬虫完全没用了,我又不想认真重写,干脆临时搞一个吧。

import requests
def get_item(li):
    li1 = []
    for i in li:
        item = {
            'url': i['target']['url'],
            'excerpt': i['target']['excerpt']
        }
        li1.append(item)
    return li1

def start(li,url):
    r = requests.get(url, headers=headers)
    li = li+get_item(r.json()['data'])
    next_page_url = r.json()['paging']['next']
    is_end = r.json()['paging']['is_end']
    return li,next_page_url,is_end


start_url = 'https://www.zhihu.com/api/v4/questions/265952961/feeds?&limit=100&offset=1'

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36",
    "Cookie": '你的Cookie'
}

li = []
li,next_page_url,is_end = start(li,start_url)
while is_end == False:
    li,next_page_url,is_end = start(li,next_page_url)

for item in li:
    if '唱' in item['excerpt']:
        print(item)

看下输出:

{'url': 'https://www.zhihu.com/api/v4/answers/3212239064', 'excerpt': '[图片] 不知道哪里看来的,连一起能唱出来'}
{'url': 'https://www.zhihu.com/api/v4/answers/321244865', 'excerpt': '鈊(xīn)。为了隐私就不说姓氏了,姓氏很普通的。名字缩写zx,听个音乐上一节课体育嘉年华什么活动都能听到一样的… 去机场买票,售票员问我怎么念;上课点名,老师直接念错;跟别人写自己的名字,硬生生拆成三个字(名字是两个字)还被人叫成“金星”,一群人在唱“星星点灯~” 我觉得我这个名字全世界绝对没有一个重名的了。 没有啥体验的吧,就是被念错很尴尬。很烦别人叫我“金星”。'}
{'url': 'https://www.zhihu.com/api/v4/answers/2827613728', 'excerpt': '不稀有,我同学叫姚远 每次都唱在那遥远的地方~'}

我要找的就是第一个,自己拼凑一下完整网址:https://www.zhihu.com/question/265952961/answer/3212239064

ok。