python3爬虫-爬取B站排行榜信息
import requests, re, time, os category_dic = {
"all": "全站榜",
"origin": "原创榜",
"rookie": "新人榜",
} day_dic = {1: "日排行榜", 3: "三日排行榜", 7: "周排行榜", 30: "月排行榜"}
all_or_origin_dic = {
0: "全站",
1: "动画",
168: "国创相关",
3: "音乐",
129: "舞蹈",
4: "游戏",
36: "科技",
188: "数码",
160: "生活",
119: "鬼畜",
155: "时尚",
5: "娱乐",
181: "影视",
} bangumi_dic = {
"番剧": 1,
"国产动画": 4,
} cinema_dic = {
"记录篇": 177,
"电影": 23,
"电视剧": 11,
} rookie_dic = {
0: "全站",
1: "动画",
3: "音乐",
129: "舞蹈",
4: "游戏",
36: "科技",
188: "数码",
160: "生活",
119: "鬼畜",
155: "时尚",
5: "娱乐",
181: "影视",
} BaseDict = {
"all": all_or_origin_dic,
"origin": all_or_origin_dic,
# "bangumi": bangumi_dic,
# "cinema": cinema_dic,
"rookie": rookie_dic,
} dic = {
"all": 1,
"origin": 2,
"rookie": 3,
} base_path = "D:\图片\\bilibili_ranking" # 文件保存的位置 def get_url():
for first in category_dic.keys():
if first in ["all", "origin", "rookie"]:
for second in BaseDict.get(first).keys():
for third in day_dic.keys():
url = "https://api.bilibili.com/x/web-interface/ranking?jsonp=jsonp&rid={}&day={}&type={}&arc_type=0&callback=__jp1".format(
second, third, dic.get(first))
yield url, [first, second, third] s = requests.Session()
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36",
"Referer": "https://www.bilibili.com/ranking/all/0/0/3"
}
url_list = get_url()
for url in url_list:
print("向{}发请求".format(url[0]))
response = s.get(url=url[0], headers=headers)
data = response.text.replace('"', "")
pattern = r'.*?author:(?P<author>.*?),.*?play:(?P<play>.*?),.*?pts:(?P<pts>.*?),.*?title:(?P<title>.*?),'
result_list = re.findall(pattern, data)
path = os.path.join(base_path, "{}-{}-{}".format(category_dic.get(url[1][0]),
rookie_dic.get(url[1][1]) or all_or_origin_dic.get(url[1][1]),
day_dic.get(url[1][2])))
f = open(path + ".txt", "a", encoding="utf-8")
print('正在写入....{}'.format(path + ".txt"))
for index, res in enumerate(result_list):
# print("排名:{}".format(index + 1))
# print("作者:{}".format(res[0]))
# print("播放量:{}".format(res[1]))
# print("综合分数:{}".format(res[2]))
# print("标题:{}".format(res[3]))
# print("-" * 90)
f.write("排名:{}\n".format(index + 1))
f.write("标题:{}\n".format(res[3]))
f.write("作者:{}\n".format(res[0]))
f.write("播放量:{}\n".format(res[1]))
f.write("综合分数:{}\n".format(res[2]))
f.write("-" * 90 + "\n")
f.close()
time.sleep(2)
python3爬虫-爬取B站排行榜信息的更多相关文章
- python爬取b站排行榜
爬取b站排行榜并存到mysql中 目的 b站是我平时看得最多的一个网站,最近接到了一个爬虫的课设.首先要选择一个网站,并对其进行爬取,最后将该网站的数据存储并使其可视化. 网站的结构 目标网站:bil ...
- Python爬取B站视频信息
该文内容已失效,现已实现scrapy+scrapy-splash来爬取该网站视频及用户信息,由于B站的反爬封IP,以及网上的免费代理IP绝大部分失效,无法实现一个可靠的IP代理池,免费代理网站又是各种 ...
- 爬虫---爬取b站小视频
前面通过python爬虫爬取过图片,文字,今天我们一起爬取下b站的小视频,其实呢,测试过程中需要用到视频文件,找了几个网站下载,都需要会员什么的,直接写一篇爬虫爬取视频~~~ 分析b站小视频 1.进入 ...
- Node.js爬虫-爬取慕课网课程信息
第一次学习Node.js爬虫,所以这时一个简单的爬虫,Node.js的好处就是可以并发的执行 这个爬虫主要就是获取慕课网的课程信息,并把获得的信息存储到一个文件中,其中要用到cheerio库,它可以让 ...
- python3爬虫爬取网页思路及常见问题(原创)
学习爬虫有一段时间了,对遇到的一些问题进行一下总结. 爬虫流程可大致分为:请求网页(request),获取响应(response),解析(parse),保存(save). 下面分别说下这几个过程中可以 ...
- python3爬虫-爬取58同城上所有城市的租房信息
from fake_useragent import UserAgent from lxml import etree import requests, os import time, re, dat ...
- python3 爬虫---爬取糗事百科
这次爬取的网站是糗事百科,网址是:http://www.qiushibaike.com/hot/page/1 分析网址,参数''指的是页数,第二页就是'/page/2',以此类推... 一.分析网页 ...
- python3 爬虫---爬取豆瓣电影TOP250
第一次爬取的网站就是豆瓣电影 Top 250,网址是:https://movie.douban.com/top250?start=0&filter= 分析网址'?'符号后的参数,第一个参数's ...
- python3 爬虫爬取深圳公租房轮候库(深圳房网)
深圳公租房轮候库已经朝着几十万人的规模前进了,这是截至16年10月之前的数据了,贴上来大家体会下 所以17年已更新妥妥的10W+ 今天就拿这个作为爬虫的练手项目 1.环境准备: 操作系统:win10 ...
随机推荐
- 利用Mongodb做地理空间查询
MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. 前言 在移动开发中,经常会用到定位的功能,例如美团.饿了么.猫眼电影等的app ...
- SpringBoot整合mybatis踩坑
springboot整合mybaits过程中,调用接口时报错:org.apache.ibatis.binding.BindingException: Invalid bound statement ( ...
- eclipse调试 10个技巧
先提三点 不要使用System.out.println作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志 1.条件断点 想象一下我们平时如何添加断点,通常的做法是双击行号的左 ...
- SSM 框架集-01-详细介绍-入门问题篇
SSM 框架集-01-详细介绍-入门问题篇 刚开始了解 SSM,首先先解决几个基础问题 1.什么是 SSM 框架集? SSM(Spring+SpringMVC+MyBatis)框架集由 Spring. ...
- vs2015新建web应用程序空模板和添加webapi的模板生成文件的比较
文件名为全红色的,是使用webapi模板生成的新文件夹或文件
- pt-summary
pt-summary主要是用来统计机器信息: [root@mxqmongodb2 bin]# ./pt-summary # Percona Toolkit System Summary Report ...
- VSTO 开发
http://www.cnblogs.com/yangecnu/category/499866.html http://www.cnblogs.com/brooks-dotnet/category/2 ...
- 编程语言——C----细节
2017-09-27 18:40:47 程序设计的基本概念 1.计算机语言:把人与计算机之间交流的语言叫做计算机语言 1)计算机语言分为高级语言和低级语言 2)高级语言:远离硬件 3)低级语言:贴近 ...
- PHP调优
目录 php.ini 内存 Zend OPcache 文件上传 最长执行时间 处理会话 缓冲输出 真实路径缓存 php.ini PHP解释器在 php.ini 文件中配置和调优.web和cli使用的路 ...
- 沉淀再出发:Spring的架构理解
沉淀再出发:Spring的架构理解 一.前言 在Spring之前使用的EJB框架太庞大和重量级了,开发成本很高,由此spring应运而生.关于Spring,学过java的人基本上都会慢慢接触到,并且在 ...