研究了一下午,刚刚成功爬出了B站的视频数据以及超链接(虽然方法很笨)。但是还是非常有意思的,这里记录一下过程

程序用的scrapy,安装方法详见 https://www.jianshu.com/p/d2c8b1496949, 这里可以直接用的CMD创建scrapy项目,只需要输入 scrapy startproject 项目名 即可,会在当前目录下创建一个新文件夹,cd到该文件夹下后,输入scrapy genspider 爬虫名 目标网址来创建你的爬虫文件(如: scrapy genspider sample https://www.bilibili.com/v/douga)

创建爬虫项目

创建爬虫成功后就可以编辑了,打开的爬虫文件(此处为sample.py)可以看到

import scrapy

class SampleSpider(scrapy.Spider):

# def start_requests(self):

# yield Request("https://", headers = {'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"})

name = 'sample' #爬虫名称

allowed_domains = ['bilibili.com'] #爬取的范围

start_urls = ['https://www.bilibili.com/v/douga']#URL地址

def parse(self, response):

接下来要定义parse()函数,要用到Xpath选择器来提取网页内标签内容,这里用到Xpath helper可以提高效率https://blog.csdn.net/xiaobai_IT_learn/article/details/100977653(要打开chrome的开发者模式),或者手动F12筛选元素也可以。

以动画分区顶端推荐视频为例,在页面元素中可以看到它属于

下的

点开这个div,发现他另分出了两个div:

继续往下挖,发现右侧的四个视频在

下,并且这个div下又划分出了8个div(8个视频)

他们的class都为 groom-module

任意点开几个div,发现他们的视频标题以及超链接都出现在标签下的和属性

那么只要把这两个标签属性提取出来就可以了,回到爬虫文件,在parse()函数下输入

#抓取标题(title)

DanceTitle=response.xpath(

'.//div[@id="app"]/div[@class="bili-wrapper"]/div[@class="channel-m"]/div[@class="nominate-m clearfix report-wrap-module report-scroll-module"]/div/div/div/a/@title'

)

#抓取Url(href)

DanceURL=response.xpath(

'.//div[@id="app"]/div[@class="bili-wrapper"]/div[@class="channel-m"]/div[@class="nominate-m clearfix report-wrap-module report-scroll-module"]/div/div/div/a/@href'

)

提取元素路径的过程就不写了,很繁琐(反正我搞得很麻烦),多用.extract()查看当前提取的路径。

可以写到本地,也可以直接在CMD中打印出来。这里我把结果保存到名为 ‘B站结果’ 的txt文档(默认保存在项目文件夹中):

#创建一个字典

Title={}

with open('B站结果.txt', 'a')as file_result:

for div in DanceTitle:

Title['标题'] = div.extract()

file_result.write("{}\r\n".format(Title))

file_result.write("{}\r\n".format(DanceURL[DanceTitle.index(div)].extract()))

这里只用到一次循环,因为标题和超链接的数量是固定的。

.extract()用于切片(脱壳)从一个对象(此处的DanceTitle,DanceURL)中得到list

在CMD中输入

scrapy crawl sample

运行爬虫

捣鼓了一下午,浏览器标签开了一万个

虽然方法很笨但是最后运行成功的时候还是很开心的,以后也会继续研究爬虫,笨方法终究是不可取的。

python爬取b站番剧链接,Scrapy爬虫爬取B站视频标题及链接相关推荐

  1. python爬取B站番剧索引页面并保存文本和图片

    该篇文章为"行路难=_="原创 期末的Python考试要写一个爬取网站信息的程序,我就选取了b站番剧索引页面作为目标网页(因为感觉番剧主页的信息太杂了.) 目标网页:https:/ ...

  2. python爬取b站追番信息_Scrapy实战B站番剧信息爬取

    Part 0 安装 采用Anaconda版本的Python可以直接使用conda install -c scrapinghub scrapy进行安装,采用pip install Scrapy有的环境需 ...

  3. python爬b站番剧_Python爬取B站动漫番剧更新信息,附代码和讲解过程

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 目标:爬取b站番剧最近更新 输出格式:名字+播放量+简介 那么开始撸吧~ 用到的 ...

  4. datetime 索引_Python爬取B站番剧索引页面并保存文本和图片

    期末的Python考试要写一个爬取网站信息的程序,我就选取了b站番剧索引页面作为目标网页(因为感觉番剧主页的信息太杂了.) 目标网页:https://www.bilibili.com/anime/in ...

  5. 使用Scrapy框架,爬取b站番剧信息。

    使用Scrapy框架,爬取b站番剧信息. 感觉好久没写爬虫的,今天看了在b站浏览了一会儿,发现b站有很多东西可以爬取的,比如首页的排行榜,番剧感觉很容易找到数据来源的,所以就拿主页的番剧来练练手的. ...

  6. Python爬虫以及数据可视化分析(最新B站番剧排行榜数据)

    本博客将会对B站番剧排行榜的数据进行信息爬取以及数据可视化分析,适应最新的B站网页结构 参考大佬:https://blog.csdn.net/Jacompol/article/details/1116 ...

  7. Python Scrapy 爬虫 - 爬取多级别的页面

    Python Scrapy 爬虫 - 爬取多级别的页面 互联网中众多的 scrapy 教程模板,都是爬取 下一页 → \rightarrow →下一页形式的,很少有 父级 → \rightarrow ...

  8. 突破B站番剧港澳台地区限制

    突破B站番剧港澳台地区限制 软件名称:Google空间 教程开始 首先要添加B站APP到软件里面 然后在软件里打开 11 找一下番 12 实测 转载于:https://www.cnblogs.com/ ...

  9. [爬虫] B站番剧信息爬取

    申明:本文对爬取的数据仅做学习使用,不涉及任何商业活动,侵删 简述 本次爬取目标是: 番剧的基本信息(名字, 类型, 集数, 连载or完结, 链接等) 番剧的参数信息(播放量, 点赞, 投币, 追番人 ...

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

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

最新文章

  1. ThreeJS的特效合成器和后期处理通道
  2. android 图片缩放算法,Android大图加载,缩放,滑动浏览--SubsamplingScaleImageView 源码分析大图加载...
  3. 「Python-Bug」matplotlib画图时报错Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
  4. 官网3.15课程一起来“打价”,找群内管理员还可以折上折
  5. mysql索引1908
  6. WINDOWSXP全面优化下
  7. C++ 不能重载的运算符
  8. iQOO Neo6现身安兔兔数据库:高导热稀土散热加入 跑分轻松破百万
  9. UI设计灵感|引人注目的弹窗设计参考
  10. vue 给checkbox 赋值_Vue动态生成el-checkbox点击无法赋值的解决方法
  11. php zitian虚拟主机配置_虚拟主机的发展
  12. 某城郊110kV降压变电站监控系统设计
  13. 手机QQ邮箱登录不上的解决办法
  14. 2021年Android面试心得,系列教学
  15. 西工大-计算机学院-2021复试-面试题目
  16. 电脑硬件:cpu后边数字及字母的意思
  17. 融合蓝牙与IoT 拓展Wi-Fi商业价值
  18. 7月5日绝地求生服务器维护,7月5日绝地求生更新到几点 7月5日绝地求生更新时间及内容介绍...
  19. 个人简历html网页代码(使用chatgpt完成web开发课的实验)
  20. 女孩,你为什么不沉住气奋斗

热门文章

  1. 二极管三极管电路原理和理解
  2. Linux驱动曝光AMD Vega20核心
  3. python清理数据
  4. idea java maven 打包,idea maven项目 基于idea自己打包方式 以及使用maven插件打包的三种方式...
  5. android apk参数错误,Android adb安装apk时出现报错Invalid APK file如何解决
  6. echarts 柱形图数据位置显示
  7. linux截图翻译,图片实时识别翻译大师
  8. win10系统问题记录(一):解决D/E盘根目录出现的msdia80.dll文件
  9. 微信小程序的简单使用(做一个阻抗计算器)
  10. linux网络设备驱动之dm9000驱动源码框架解析