2020/6/2 好像知乎架构又有改动,作废 4月时下载了500+篇
import requests
from pyquery import PyQuery as pq
# 扬叔文章页面的网址 F12-Network-XHR 刷新 Headers-General-Request URL
url = 'https://www.zhihu.com/api/v4/members/fu-lan-ke-yang/answers...by created'
# 添加请求头 浏览器类型 同上F12寻找
headers ={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/'}
# 加上请求头对网址进行请求
response = requests.get(url,headers=headers).json()
# 取出字典中以data为键对应的数据
data =response["data"]
# 因为得到的数据是一个列表,所以用for遍历提取
qdata = requests.get(response["question"]).json
for x in data:
# 提取出question键
# 新建一个空字典
dict={}
qdict={}
# 遍历后得到的数据是一个字典,取出字典中以question为键对应的数据,得到文章的标题,并把数据装进新建的字典里
dict["aid"]=x["id"]
# 取出字典中以url为键对应的数据,得到文章的网址,并把数据装进新建的字典里
dict["qid"]= qdata["id"]
# 对文章网址进行请求
durl = 'https://www.zhihu.com/question/'+dict['qid']+'/answer/'+qdata['aid']
res =requests.get(durl,headers=headers).text
# 数据初始化
doc = pq(res)
# .是按类选择器选取数据
contnent = doc(".Post-RichTextContainer").items()
print(contnent)
# 遍历文章数据
for x in contnent:
v = x.text()
# 打开文件夹“知乎”,保存为“标题名.txt”,以“a”追加的方式写入,编码为“utf-8”
f = open("c:/Users/白非立/Desktop/扬叔文章/" + dict["question"] + ".txt", "a", encoding="utf-8")
# 写入
f.write(v)
# 关闭写入
f.close()