今天搞一下,B站UP主前100名的数据信息~
不要多想,不要多问,纯粹为了技术,不为数据~ 说我的都信了!!

接下来,老规矩,上代码,看看怎么实现爬取B站up主的信息:

# -*- coding:utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-8-21
"""import requests
import os
import json
import traceback#存放数据的根目录
dir_path = os.path.join('up_100')def get_http_session(pool_connections=2,pool_maxsize=10,max_retries = 3):"""http的连接池:param pool_connection: 连接池数:param poll_maxsize: 最大连接池数:param max_retries: 最大重试数:return:"""session =requests.session()#适配器adapter = requests.adapters.HTTPAdapter(pool_connections=pool_connections, pool_maxsize=pool_maxsize, max_retries=max_retries)session.mount('http://',adapter)session.mount('https://',adapter)return sessiondef save_file(filepath,content):""":param filepath: 文件路径:param content: 保存的内容:return:"""with open(filepath) as f:f.write(content)def log(content,level,filepath):""":param content: 输入错误信息的内容:param level: 错误等级:param filepath: 写入错误文件地址:return:"""if  level == 'error':with open(filepath,'a') as f:f.write(content)elif level == 'fail':with open(filepath,'a') as f:f.write(content)def make_dir(name):up_dir = os.path.join(dir_path,name)if not os.path.exists(up_dir):os.makedirs(up_dir)return up_dirdef read_json(filepath):""":param filepath: 读取文件:return:"""with open(filepath,'r') as f:res = f.read()#将读取的文件转换成json格式,return json.loads(res)def get_up_base_info(name,uid):url = f"B站UP主的url"#设置获取url,超时时间为100try:r = get_http_session().get(url, timeout=100)if r.status_code ==200:up_dir = make_dir(name)#文件信息filepath = os.path.join(up_dir,f'{uid}_base_info.json')#获取up主的内容,缩进4位,不进行编码content = json.dumps(r.json(),indent=4,ensure_ascii= False)save_file(filepath,content)print(f'{name}up主信息保存成功!')else:#将失败的内容写入到log中fail_str = f'name:[{name}],uid:[{uid},url:[{url}]'log(fail_str,'fail','base_info_fail.log')except Exception as e:log(traceback.format_exc(),'error','base_info_error.log')#保存错误的基本信息error_str = f'name:[{name}],uid:[{uid}'log(error_str,'error','base_info_error.log')def base_info_task(power_json):##启动方法,获取json的uid 和name信息for d in power_json:uid = d['uid']name = d['name']get_up_base_info(name,uid)def main():#读取pwoer_uppower_json = read_json('power_up.json')base_info_task(power_json)if __name__ == '__main__':main()

注意:
1.获取的接口返回信息,可以使用工具Charles,Fiddler等,看哪个顺手,就用哪个;
2.获取的数据,都是以json的格式存放,方便查看;
3.log等级只定义errorfail,其他的未定义,可以自行进行封装;
4.这里我们只需要 uidname 信息,需要其他信息,可以自行追加;
5.同样,这里没有做User-Agent的设置,所如果爬取太频繁的话,可能被封IP;
6.如果大批量爬取,可以做User-Agent 设置和 ip代理池设置;会有专门篇幅做ip代理池。

Pyhotn3,爬取B站up主的信息!相关推荐

  1. scrapy+selenium爬取B站生活区热门视频信息!

    在爬取动态网页时,一般尽量先找相应网页的API接口.但当接口不好找(或者接口的URL中含有加密参数)时,这时候就需要selenium来帮忙了.但由于selenium爬取速度比较慢,此时结合scrapy ...

  2. python3网络爬虫--爬取b站用户投稿视频信息(附源码)

    文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析数据加载方式 2.分词接口url 3.分析用户名(mid) 四.撰写爬虫 五.得到数据 六.总结 上次写了 ...

  3. python爬取B站up主全部视频封面

    B站up主的点赞投币转发等信息,以及弹幕文件.评论文件等等都可以调用特定的API接口来获得. python爬取B站弹幕.绘制词云等点击下方链接 https://blog.csdn.net/weixin ...

  4. java爬虫爬b站_Java + golang 爬取B站up主粉丝数

    自从学习了爬虫,就想在B站爬取点什么数据,最近看到一些个up主涨粉很快,于是对up主的粉丝数量产生了好奇,所以就有了标题~ 首先,我天真的以为通过up主个人空间的地址就能爬到 https://spac ...

  5. 爬取虎牙TV全站主播信息

    """ Created by Young on 2019/1/16 17:00 """from bs4 import BeautifulSo ...

  6. 爬取b站视频评论用户信息!这些评论的才是大神!

    最近马保国老师在b站挺火的,关于他的视频播放量很高,b站视频评论区都是人才说话好听,写个爬虫爬取一下b站评论区用户信息和评论内容. 一.准备工作 1.工具 (1)Chrome 谷歌浏览器 安装地址:h ...

  7. python3网络爬虫--爬取b站视频评论用户信息(附源码)

    文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析网页加载方式 2.分析数据接口 3.获取oid 四.撰写爬虫 五.存储数据 六.总结 你爱我,我爱你,蜜雪 ...

  8. 【爬虫+数据分析】爬取了虎牙36709主播信息,发现虎牙每天都是在直播王者荣耀和英雄联盟

    2021 年 3 月,虎牙交出了去年成绩单,披露发布了 2020 年 Q4 及全年财报.2020 年第四季度,虎牙总收入为 29.90 亿元,全年总收入为 109.14 亿元. 于是一个恶心的念头想起 ...

  9. 【爬虫】爬取B站UP的所有视频细节信息(通过UP名字)

    爬取B站UP主的所有视频细节信息 1. 前言 使用python来爬取B站UP的视频信息,在此之前需要安装一下模块 pip3 install selenium pip3 install bs4 sele ...

最新文章

  1. python链表的创建_python数据结构之链表的实例讲解
  2. Apache Kafka 1.0.0正式发布!
  3. html5新增的js api,对HTML5新增JS Api的思考
  4. pb 调用虹软_python调用虹软2.0
  5. 相对熵与交叉熵_详解机器学习中的熵、条件熵、相对熵、交叉熵
  6. 计算不定方程解的个数的方法汇总
  7. Cesium Workshop
  8. Java判断字符串是否是数值
  9. 嵌入式操作系统内核原理和开发(多线程轮转)
  10. vue 绑定 class 和 内联样式(style)
  11. [bzoj1042] [HAOI2008]硬币购物
  12. 类比菜鸟全国仓配网络来学习CDN
  13. fcntl函数的用法总结
  14. matlab单枝节匹配器,第八讲微带匹配电路单枝节匹配电路.ppt
  15. PLC也能制作小游戏----Codesys编写猜数字小游戏
  16. 干法:经营者应该怎样工作
  17. 【年终总结】回顾我平凡且不平凡的 2021
  18. matlab的gccphat转C语言,Python中的GCCPHAT互相关
  19. .xin是什么域名?
  20. BZOJ1913: 信号覆盖 题解

热门文章

  1. 2022华为杯A题思路分析移动场景超分辨定位问题
  2. android 崩溃 oatdump 分析,也来看看Android的ART运行时
  3. android 4.3刷机包,联想B8080-F官方固件刷机包4.3rom线刷包(Root权限+驱动)
  4. 关于ios代码混淆的一些注意事项
  5. 你的论文题目确定了吗
  6. 技术升级 | 戴着口罩也能识别人脸啦
  7. 新视野大学英语(第三版)视听说4Unit7必修答案
  8. 常用软件01—读paper/pdf神器—Mendeley
  9. 从傅里叶变换到Laplace变换
  10. MATLAB定态氢原子波函数可视化