实例介绍
【实例简介】
使用python 获取知乎用户粉丝
【实例截图】【核心代码】
#导入模块
import requests
#创建一个类
class ZhiHu:
#定义一个初始化函数
def __init__(self):
#初始化网址 提前赋值网址
self.url='https://www.zhihu.com/api/v4/members/WaJueJiPrince/followers?include=data%5B*%5D.answer_count%2Carticles_count%2Cgender%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F(type%3Dbest_answerer)%5D.topics&offset=40&limit=20'
#反爬措施
self.header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'}
def getFenSi(self,param):#得到粉丝
#请求json文件到本地
self.html = requests.get(self.url,params=param,headers=self.header) #得到文本文件并解析
#批量提取json文件里面的数据
for n in range(20):
#print(self.html)
id = (self.html.json()['data'][n]['url'])#返回json文件 读取id值
#print(id)
#每次循环写到本地
self.dataToFile(id)
def dataToFile(self,id): #文件写入函数
#with open(r'C:\Users\Administrator\Desktop\id\ids.txt,''a ')as f:
#f.write(id '\n')
fd=open(r'C:\Users\Administrator\Desktop\id\ids.txt','a ')
# a 说明:添加a 是不覆盖原来的数值,追加
# 换两行 '\n'*2 换20行 写法'\n'*20
fd.write(id '\n')
fd.close()
#判断条件,是否相等,如果不相等则不执行一下程序
#在当前文件下运行prit(__name__) 结果是__main__
if __name__== '__main__':
zhihu = ZhiHu()#隐式调用实例化 zhihu就是对象
#实现翻页功能
#list(range(0,60,20))等差数列,20为步长或者为偏移量
for m in range(0,60,20):
data = {
'limit': 20,
'offset': m
}
zhihu.getFenSi(data)
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论