一个简单的爬取b站up下所有视频的所有评论信息的爬虫

心血来潮搞了一个简单的爬虫,主要是想知道某个人的b站账号,但是你知道,b站在搜索一个用户时,如果这个用户没有投过稿,是搜不到的,,,这时就只能想方法搞到对方的mid,,就是 space.bilibili.com/9444976 后面的那一串数字。偶然看到这个人关注了某个主播,,想到可能这个人会回复主播的视频,于是想着爬到所有up下的视频的评论对应的用户,这样我就可以在数据库里检索昵称得到mid,,,嘿嘿嘿(然而失败了,,不是所有人都像我这么无聊,,,,有些人真的看视频不会回复,,

项目地址: https://github.com/31415926535x/CollegeProjectBackup/tree/master/BilibiliSpiders

这个爬虫的主要功能是爬取某个指定up主下的所有视频中的评论(不包括评论的回复,当然可以实现,但是感觉都差不多,就没考虑这块),最后将爬到的用户数据存到数据库里。整个项目只是抱着学习相关内容的心态来完成,不要做大批量的爬取网站(DDOS)及其敏感数据的事,也不要用作商业用途,,(虽然写的很丑,,,)

简要说明

整个项目的分为三个部分,首先是爬取指定mid up的所有视频的av号,即 CrawlAllVideosOfAUP.py 这个脚本,使用的api是 https://api.bilibili.com/x/space/arc/search?mid=mid&ps=30&tid=0&pn=pn&keyword=&order=pubdate&jsonp=jsonp 具体的说明见脚本内注释。

之后有了所有的av号,使用 CrawlCommentUsersByVideo.py 爬取指定av号下的所有评论,使用的api是 https://api.bilibili.com/x/v2/reply?pn=**&type=1&oid=***&sort=2 爬取av号为 oid 下第 pn 页的评论的信息(sort对应的应该是评论的展示顺序用不到没管。可以爬取到很多的信息,根据自己需求来修改脚本计科。

最后将这两个整合,加一点点细节就行了,,大致是一个能用的脚本(虽然最后没有找到我想要的一个信息,,,,

具体看注释吧,,很简单的一些东西吧,,长见识为主,留印象。。。。

总结

之前很早就接触了Python爬虫,,但是只是用一下就扔了,没有自己完全的编写一个,,所以心血来擦写一个练练手,,说不定以后还会遇到这样类似的事,,,

这个脚本最后将爬取到的数据扔到了数据库里,,因为之前看别人的代码,他是获取一条写入一条,,数据量一大就很慢,,(尤其是用了线程一边获取一遍写入时,因为爬虫一次会获得很多的数据,但是如果保存数据库时一条一条的 commit 些磁盘的io瓶颈就会显露出来,,所以可以加一个 flag ,写入到1000或者某个值时再 commit 这样就很有效率了,,跑偏了)

大概了解了一下python下的线程的写法,思路都是那个思路,,算是简单的见识一下,,,

关于windows下的mysql数据库:我们通常会备份一个数据库的某些表的结构到一个文件中,例如 233.sql ,使用的命令可能是 mysqldump -uroot -p databases > 233.sql 等等类似的,,但是这个命令在windows的 PowerShell 会有bug,,具体原因没有深究(猜测是编码的锅),导出的文件不能使用 source 233.sql 导入,,会爆什么 ‘\0‘ 等 ASCII错误,,这时的解决方法就是换 cmd ,,这个错误第一次见,,而且不好解决,,迷惑性太大,,容易带偏QAQ,,,太浪费时间了,,,

好像没啥了。。。(end)

哦对,加个参考。。。

这是一个暴力爬所有用户信息的,思路差不多的

这个也是,简单些的

user-agents看到一个很全的ua,因为我的数据量不大,所以就没用,记录一下

原文地址:https://www.cnblogs.com/31415926535x/p/12399222.html

时间: 2024-08-01 03:06:29

一个简单的爬取b站up下所有视频的所有评论信息的爬虫的相关文章

python爬取B站千万级数据,发现了这些热门UP主的秘密!

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句. Python支持命令式程序设计.面向对象程序设计.函数式编程.面向切面编程.泛型编程多种编程范式.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收

Web侦察工具HTTrack (爬取整站)

Web侦察工具HTTrack (爬取整站) HTTrack介绍 爬取整站的网页,用于离线浏览,减少与目标系统交互,HTTrack是一个免费的(GPL,自由软件)和易于使用的离线浏览器工具.它允许您从Internet上下载万维网站点到本地目录,递归地构建所有目录,从服务器获取HTML,图像和其他文件到您的计算机.HTTrack安排原始网站的相关链接结构.只需在浏览器中打开"镜像"网站的页面,即可从链接到链接浏览网站,就像在线查看网站一样.HTTrack也可以更新现有的镜像站点,并恢复中断

web scraper——简单的爬取数据【二】

web scraper——安装[一] 在上文中我们已经安装好了web scraper现在我们来进行简单的爬取,就来爬取百度的实时热点吧. http://top.baidu.com/buzz?b=1&fr=20811 文本太长,大部分是图片,所以上下操作视频吧,视频爬取的是昵称不是百度热点数据 链接:https://pan.baidu.com/s/1W-8kGDznZZjoQIk1e6ikfQ提取码:3dj7 爬取步骤 创建站点 打开百度热点,ctrl+shit+i进入检测工具,打开web scr

简单的爬取并下载图片的程序

闲来无事就编写了一个爬取美女图片并下载的爬虫.看好多爬虫都是爬妹子图的我就写编写了一个爬取妹子图网站上的图片. 需求:将妹子图网站上的首页到73页正文中的妹子图片爬取下来并保存在当前目录下 思路:通过查看网站的源代码发现,网站展示的图片都是有html链接的,每个图片都会链接到新的网址,来展示一个美女的多张图片.于是,需要先将以及界面的链接爬取出来,然后进入二级界面开始爬取并下载图片. 程序效果:通过简单的一个程序实现了图片的下载,在连续爬取了一个小时左右的时间爬取了大概有1000张图片.  遇到

【爬虫】【原创】08 使用简单正则表达式爬取下厨房(早餐,午餐,晚餐)

目的 1)      提取下厨房关键词为(早餐,午餐,晚餐)的菜谱 2)      获取"菜谱链接,图片地址,菜名,材料,七天内多少人做过,作者",存储到MONGODB 3)      对每个菜谱进行网页截图,保存到本地 2.      目标站点分析 网址: http://www.xiachufang.com/ 输入关键词"早餐",发现是跳转链接(暂时没想到这种怎么处理比较好,就单独拿出来处理吧) 午餐和晚餐的网址就比较一致 3.      爬取思路(以午餐为例)

我的第一个Scrapy 程序 - 爬取当当网信息

前面已经安装了Scrapy,下面来实现第一个测试程序. 概述 Scrapy是一个爬虫框架,他的基本流程如下所示(下面截图来自互联网) 简单的说,我们需要写一个item文件,定义返回的数据结构:写一个spider文件,具体爬取的数据程序,以及一个管道 pipeline 文件,作为后续操作,比如保存数据等等. 下面以当当网为例,看看怎么实现.这个例子里面我想爬取的内容是前面20页的羽绒服产品,包括产品名字,链接和评论数. 过程 1. 创建一个Scrapy的项目 scrapy startproject

Python 爬取 B 站,宋智孝李光洙哪个更受宠?

在中国,大家应该都了解<跑男>这个节目吧,跑男这个节目就是引用了韩国的<Running Man>,成员组成包括原六位成员刘在石.池石镇.金钟国.HAHA(河东勋).宋智孝.李光洙 ,以及两位新成员全昭旻.梁世灿 . 自从限韩令发布后,Running man在除B站以外的各大视频网站均下架,所以本文从B站出发,抓取相关视频的所有评论. 由于相关视频非常多,本文选择了最具代表性,点击量观看次数最多的视频. 进入这个页面后开始抓包(https://www.bilibili.com/vid

Python爬虫之简单的爬取百度贴吧数据

首先要使用的第类库有 urllib下的request  以及urllib下的parse  以及 time包  random包 之后我们定义一个名叫BaiduSpider类用来爬取信息 属性有 url:用来爬取的网址             headers:请求头 class BaiduSpider(object): def __init__(self): self.url = 'http://tieba.baidu.com/f?kw={}&pn={}' self.headers = {'User

python简单实现爬取小说《天龙八部》,并在页面本地访问

写在前面:第一次使用爬虫,甚至都算不上爬虫,水平有限,主要作为学习记录. 主要业务流程如下: 使用python的requests模块获取页面信息 通过re模块(正则表达式)取出需要的内容(小说标题,正文) 通过MysqlDB模块入库 使用webpy模块进行访问 下面是效果图,简单实现了点击上一页.下一页翻页的功能: 目录结构如下: D:\PROJECT\SPIDER│  fiction_spider.py│  webapp.py│└─template        index.html 爬取信息