python爬取哔哩哔哩网站数据以及弹幕

news/2024/5/10 2:53:55/文章来源:https://blog.csdn.net/liangmaxmin/article/details/107327156
	首先要爬取哔哩哔哩网站的数据 , 第一步就是要分析网页,找到网上ajax异步加载的数据 即json文件,找到后还要对其爬去,这里我选正则表达式爬去网页,其次是 对爬取的数据进行清洗,防止脏数据对生成的词云造成影响,将清洗完的的数据存入MongoDB数据库中最后是 利用woldcould这个库 对弹幕进行词频统计最后利用matplotlib库生成词云图片

在这里插入图片描述

blibli.pyimport requests
import json
import re
import pymongo
import numpy as np
import pandas as pd
from config import *# 连接mongo数据库  
client = pymongo.MongoClient(MONGO_URL)
db = client[MONGO_DB]# 获取哔哩哔哩视屏排行榜
def get_page(i):url = "https://api.bilibili.com/pgc/season/index/result?season_version=-1&area=-1&is_finish=-1©right=-1&season_status=-1&season_month=-1&year=-1&style_id=-1&order=4&st=1&sort=0&page="+str(i)+"&season_type=1&pagesize=20&type=1"response = requests.get(url)response.encoding = 'UTF-8'return response.text# 解析网站得到对应的视屏链接
def parse_page_url(js):data = json.loads(js)if "data" in data:data = data.get('data')for item in data.get('list'):if item.get('badge') != "会员专享":yield item.get('link')# 利用正则抓取网页中需要的数据
def parse_page_detail(url):response = requests.get(url)response.encoding = 'UTF-8'content = response.text# print(content)# 从script中抓取数据pattern = re.compile('<h4>(.*?)</h4>.*?"mediaInfo".*?"stat":(.*?),"id".*?"title":"(.*?)","jpTitle".*?"epList":.*?"cid":(.*?),"from"',re.S)content_detail = re.search(pattern, content)# 解析json文件数据item = json.loads(content_detail.group(2))return {'标题': content_detail.group(3),'综合评分': content_detail.group(1),'播放次数': item.get('views'),'弹幕历史总数': item.get('danmakus'),'硬币': item.get('coins'),'弹幕': get_danmakus(content_detail.group(4))}# 由于弹幕数据是异步加载得到的这里是获取当天的评论数据
def get_danmakus(cid):url = "https://api.bilibili.com/x/v1/dm/list.so?oid=" + cidresponse = requests.get(url)response.encoding = 'UTF-8'danmaku = response.textpattern = re.compile('<d p.*?>(.*?)</d>', re.S)danmakus = re.findall(pattern, danmaku)return danmakus# 保存到数据库
def save_to_mongo(result):if db[MONGO_TABLE].insert(result):print('存储成功', result)return Truereturn Falseif __name__ == '__main__':# 获取9页视屏数据for i in range(1,10):js = get_page(i)for url in parse_page_url(js):save_to_mongo(parse_page_detail(url))

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

worldCloud.pyfrom wordcloud import WordCloud
import pymongo
from config import *
import matplotlib.pyplot as plt# 连接mongo数据库  False是因为多进程下频繁的连接会报错
client = pymongo.MongoClient(MONGO_URL)
db = client[MONGO_DB]#从数据库中读取文件
def read_from_mongoDB(title):#设置读取的列field = {'标题': True, '综合评分': True, '播放次数': True, '弹幕历史总数': True, '硬币': True, '弹幕': True}content=db[MONGO_TABLE].find({"标题":title},projection=field)return content# 生成词云
def show_woldCould(content):for item in content:title = item.get('标题')# 将列表拼接字符串text = " ".join(item.get('弹幕'))# 系统字体font = '/usr/share/fonts/opentype/noto/NotoSerifCJK-SemiBold.ttc'wc = WordCloud(collocations=False, font_path=font, width=1000, height=700, margin=2).generate(text)# 画图plt.imshow(wc)plt.axis("off")plt.show()url='./image/{0}.png'.format(title)print(url)# 把词云保存下来wc.to_file(url)if __name__ == '__main__':title = input("请输入要生成词云的标题:")show_woldCould(read_from_mongoDB(title))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_871076.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

xpath爬取好大学网站数据

xpath爬好大学网站 from lxml import etree import pymongo from config import * import requests# 连接mongoDB数据库 client pymongo.MongoClient(MONGO_URL,connectFalse) db client[MONGO_DB]def get_page(year):url "http://www.zuihaodaxue.cn/zuihaodaxuepaim…

基于Spark统计购物网站标签

文章目录 1、项目描述2、数据描述3、代码实现 1、项目描述 目前&#xff0c;越来越多的商家驻扎于购物网站中&#xff0c;每天都有大量的用户在不同的商家购物&#xff0c;然后进行评价&#xff0c;如图1&#xff0c;图2&#xff0c;图3所示。评论越多&#xff0c;说明该商品越…

python爬虫之爬取网站小说

继上次的使用类的方法爬取的单页单章小说后&#xff0c;在准备爬取整部小说&#xff0c;遇到点困难&#xff0c;先用函数式编程试试结果。 代码如下&#xff1a; 函数式编程 17K小说网爬取龙井迷案小说 # 导入第三方库 import requests from lxml import etree import time fro…

养眼神器,爬取美女网站个人的写真套图

很久之前写的爬虫&#xff0c;一直没有放出来&#xff0c;这次放出来&#xff0c;单线程爬取&#xff0c;又有延时&#xff0c;所以有点慢。不过这也不耽误爬取了一个人的2万多张写真套图&#xff0c;因为这个人的很好看&#xff0c;哈哈哈。。。不过后来又全都删了&#xff0c…

NET开发人员必知的几个网站

当前全球有数百万的开发人员在使用微软的.NET技术。如果你是其中之一&#xff0c;或者想要成为其中之一的话&#xff0c;我下面将要列出的每一个站点都应该是你的最爱&#xff0c;都应该收藏到书签中去。 对于不熟悉.NET技术的朋友&#xff0c;需要说明一下&#xff0c;.NET提…

局域网ip部署web网站

局域网ip的设备如何做部署web网站 今天&#xff0c;在家部署web网站&#xff0c;因为用的家用路由器&#xff0c;自身电脑ip是局域网ip&#xff08;192.168.1.107&#xff09;&#xff0c;因此无法通过ip&#xff1a;端口号访问&#xff0c;那怎么办呢&#xff1f; 度娘发现&a…

windows server 2008 Asp.net 网站环境配置

1.建立用户www,隶属于: 2.IIS建立网站&#xff0c;应用程序池设置为&#xff1a; 3.网站&#xff0c;高级设置中“物理路径凭证”&#xff0c;需要输入用户www&#xff1a; 4.网站根目录设置用户www只读&#xff08;左一&#xff09;&#xff0c;对于需要写入的文件夹&#xff…

针对DLL的网站授权License破解方法

有很多Asp.Net制作的网站&#xff0c;每年都需要授权。如果破解授权呢。本文将一步步的操作。 以下内容只是作者兴趣所致&#xff0c;不代表任何立场。 一般而言&#xff0c;License文件是一个加密文件&#xff0c;通过bin下面的DLL组件进行判断。我们可以对DLL进行改造。 1. …

快速免费搭建属于自己的网站

快速免费搭建属于自己的网站 本网文由忆云竹业务 编辑发布 很多人想拥有一个简单的个人网站&#xff0c;但是域名、主机空间以及程序代码却是不会。现在带给大家简单快速拥有个人网站 网站展示 个人网页 大量个人网页模板&#xff0c;炫酷、简约、个性等等 表白网页 浪漫、…

百度中指定某个网站来搜索

法&#xff1a;在搜索引擎的框框里输入 " site:wenku.baidu.com题目" 或者 "site:wenku.baidu.com 题目"。 解释&#xff1a;【site命令是指在制定的网站里搜索&#xff0c;加号也是要的&#xff0c;如果嫌输入加号麻烦&#xff0c;可以用空格代替。】 …

jQuery Mobile 移动网站开发之日期控件Mobiscroll 2.5 使用说明

福利&#xff1a;阿里云服务器-全场景 首次购买ECS享实例首台5折&#xff0c;限时领取红包 在用jQuery Mobile 做手机网站、需要用日期控件 找了3个 分别展示下&#xff1a; 1.可以说是html5自己的 <label for"date-1"> 购买时间* </label> <…

宝塔面板网站运行php文件的时候提示404错误

其实报这个错误原因大部分在php的原因。 解决办法1&#xff1a; 开启php的错误提示 修改配置文件 将display_errors Off 修改成display_errors On 修改完之后重启php即可 注&#xff1a;7月份以前安装过宝塔php的默认是关闭错误提示的&#xff0c;7月份后安装的默认开启 如…

利用XSS注入漏洞能对网站做什么

或许大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此&#xff0c;当自己alert出窗口来&#xff0c;便说自己发现了漏洞。 其实远没这么简单。你发现的只是程序员的一个小bug而已&#xff0c;远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系&…

从零带你用VuePress来搭建个人网站

VuePress可以让你非常方便的在Markdown文档中编写Vue代码&#xff0c;VuePress会为每个页面预渲染生成静态的HTML,同时&#xff0c;每个页面被加载的时候&#xff0c;将作为SPA运行 这里我将带大家一步步用VuePress来搭建个人网站 环境搭建 查看node的版本号 node -vnode.…

如何用织梦程序搭建一个网站

用织梦程序建站是目前互联网很多新手站长朋友用比较多的&#xff0c;不仅因为它可以二次开发&#xff0c;还有就是它的代码修改没那么复杂&#xff0c;加上知名度还好&#xff0c;不会的在网上有很多资源可以找!小编初次做站就是用织梦的&#xff0c;后来用asp、wordpress程序也…

如何去掉dedecms织梦程序网站首页域名后出现的index.html的情况?

如题&#xff0c;想必很多用dedecms织梦程序系统建站的朋友都会遇到;在访问dede织梦网站首页时&#xff0c;域名后面会多出了index.html。乐晨同很多朋友一样遇到过同类似的问题&#xff0c;当我在访问乐晨博客网站首页&#xff0c;输入域名www.ilechen.com时&#xff0c;访问的…

带www的域名与不带www的域名,那个更有利于网站优化

当乐晨在刚进入SEO&#xff0c;初生小白的时候&#xff0c;曾自己问到过是带www的二级域名有利于网站优化&#xff0c;还是不带www的一级域名(即顶级域名)更有利于网站优化呢? 带着疑问&#xff0c;乐晨通过互联网百度搜索引擎了解到不带www的一级域名比带www的二级域名更有利…

个人站长财神的13招简单实用且见效快的网站推广方法

‍ 对于我们这做站的一批群体及网站运营专员来说&#xff0c;搭建一个完整的站或拿的一个网站之后&#xff0c;就是要想尽一切办法进行网站推广宣传&#xff0c;从而为网站带来流量&#xff0c;实行转化等&#xff0c;那么如何做呢?下面跟着乐晨一起看下个人站长财神分享13招简…

什么是SEO,学习SEO的六大步骤

温馨提示 乐晨博客导航子栏&#xff1a;seo学习-旨在搜集互联网seo基础知识&#xff0c;提供新人SEO学习参考!seo学习就来乐晨博客&#xff0c;这里为你提供良好的SEO学习平台! 要学习seo,首先你要了解seo是什么&#xff1a;seo即是搜索引擎优化英文Search Engine Optimization…

如何快速有效的学习好SEO,SEO学习的方法有哪些?

温馨提示 乐晨博客导航子栏&#xff1a;SEO学习-旨在搜集互联网SEO基础知识&#xff0c;提供新人SEO学习参考!seo学习就来乐晨博客&#xff0c;这里为你提供良好的SEO学习平台! 导读&#xff1a;本文是继前篇学习SEO的六大步骤的再一次详细介绍SEO学习的方法及技巧!作者&#x…