心血来潮搞了一个简单的爬虫,主要是想知道某个人的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,因为我的数据量不大,所以就没用,记录一下

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

  1. 用Python爬取B站、腾讯视频、爱奇艺和芒果TV视频弹幕!

    众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...

  2. Python 网络爬虫实战:爬取 B站《全职高手》20万条评论数据

    本周我们的目标是:B站(哔哩哔哩弹幕网 https://www.bilibili.com )视频评论数据. 我们都知道,B站有很多号称“镇站之宝”的视频,拥有着数量极其恐怖的评论和弹幕.所以这次我们的 ...

  3. 【python爬虫】一个简单的爬取百家号文章的小爬虫

    需求 用"老龄智能"在百度百家号中搜索文章,爬取文章内容和相关信息. 观察网页 红色框框的地方可以选择资讯来源,我这里选择的是百家号,因为百家号聚合了来自多个平台的新闻报道.首先看 ...

  4. 用Python实现的一个简单的爬取省市乡镇的行政区划信息的脚本

    # coding=utf-8 # Creeper import os import bs4 import time import MySQLdb import urllib2 import datet ...

  5. scrapy进阶(CrawlSpider爬虫__爬取整站小说)

    # -*- coding: utf-8 -*- import scrapy,re from scrapy.linkextractors import LinkExtractor from scrapy ...

  6. 萌新学习Python爬取B站弹幕+R语言分词demo说明

    代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...

  7. 爬虫练习四:爬取b站番剧字幕

    由于个人经常在空闲时间在b站看些小视频欢乐一下,这次就想到了爬取b站视频的弹幕. 这里就以番剧<我的妹妹不可能那么可爱>第一季为例,抓取这一番剧每一话对应的弹幕. 1. 分析页面 这部番剧 ...

  8. python爬取b站排行榜

    爬取b站排行榜并存到mysql中 目的 b站是我平时看得最多的一个网站,最近接到了一个爬虫的课设.首先要选择一个网站,并对其进行爬取,最后将该网站的数据存储并使其可视化. 网站的结构 目标网站:bil ...

  9. 从0实现python批量爬取p站插画

    一.本文编写缘由 很久没有写过爬虫,已经忘得差不多了.以爬取p站图片为着手点,进行爬虫复习与实践. 欢迎学习Python的小伙伴可以加我扣群86七06七945,大家一起学习讨论 二.获取网页源码 爬取 ...

随机推荐

  1. DNA methylation|Transcription factors|PTM|Chromosome conformation|表观遗传学测序技术

    生物医疗大数据-DNA element functions and identification Genetic vs epigenetic GENETICS  遗传学 DNA Code: 64 tr ...

  2. 通过javascri实现输入框只能输入数字

    输入框只能输入数字 <input type="text" onkeyup="value=value.replace(/[^\d]/g,'');"> ...

  3. android上线之前代码混淆加密

    https://blog.csdn.net/zuiwuyuan/article/details/48552701# https://blog.csdn.net/chaoyu168/article/de ...

  4. Opencv笔记(十六)——认识轮廓

    什么是轮廓? 轮廓可以简单认为成连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度.轮廓在形状分析和物体的检测和识别中很有用.谈起轮廓不免想到边缘,它们确实很像.简单的说,轮廓是连续的,边缘并 ...

  5. xcode7 上传APPStore错误ERROR ITMS-90474: iPad Multitasking support requires these orientations

    在使用Xcode7 上传AppStore时候发现ERROR ITMS-90474错误.报错描述如下: ERROR ITMS-90474: “Invalid Bundle. iPad Multitask ...

  6. dom4j 为生成 XML 的文件添加 xmlns(命名空间) 属性

    dom4j 为生成 XML 的文件添加 xmlns(命名空间) 属性 分类: Java2011-06-03 16:14 976人阅读 评论(0) 收藏 举报 xml扩展语言 今天在开发sitemap地 ...

  7. numpy.ravel() 与 numpy.flatten()

    两者都可实现将多维数组降位一维的功能 numpy.flatten()返回拷贝,对拷贝所做的修改不会影响原始矩阵 numpy.ravel()返回视图,会影响原始矩阵 1)ravel() In [16]: ...

  8. [蓝桥杯2015初赛]方程整数解 unordered_map

    unordered_map: 如果直接写报错加上tr1: #include<tr1/unordered_map>//注意写法 using namespace std; using name ...

  9. deeplearning.ai 卷积神经网络 Week 3 目标检测

    本周的主题是对象检测(object detection):不但需要检测出物体(image classification),还要能定位出在图片的具体位置(classification with loca ...

  10. Java判断字符串是否为空

    我们常常在实际开发调用一些类库,或者本身框架里面有类库去实现判断字符串空的操作,但是某些场景下上不是很方便去引入外部库的,所以需要我们自己去做这个工作,事实上判断空的操作不是很复杂,所以做个记录. 空 ...