【从零开始学爬虫】采集B站UP主数据

l 采集网站

【场景描述】采集B站动漫分类中所有UP主数据。

【源网站介绍】

B站,全名哔哩哔哩,英文名称:bilibili,https://www.bilibili.com/v/channel/type/1,现为中国年轻世代高度聚集的文化社区和视频平台,该网站于2009年6月26日创建,被粉丝们亲切地称为“B站”   。

【使用工具】前嗅ForeSpider数据采集系统,点击下方链接可免费下载

http://www.forenose.com/view/forespider/view/download.html

【入口网址】https://www.bilibili.com/v/channel/type/1

【采集内容】

采集B站动漫分类中所有up主信息,字段包括:up主名称、id、视频名称、视频链接、观看量、点赞量等。

图片

【采集效果】如下图所示:

图片

l 思路分析

配置思路概览:

图片

 l 配置步骤

1. 新建采集任务

选择【采集配置】,点击任务列表右上方【+】号可新建采集任务,将采集入口地址填写在【采集地址】框中,【任务名称】自定义即可,点击下一步。

图片

2.获取类表请求链接

①在浏览器上观察该页面翻页,翻页类型为瀑布流翻页,推测翻页链接在请求中。

②点击F12,继续往后翻页,观察可找到翻页请求在如下图所示的请求中。

图片

 

③复制翻页请求链接:

图片

④同样方法,找到第三页和第四页请求链接,并复制出来。

⑤观察链接,发现规律如下图所示:

图片

⑥写翻页链接脚本,具体操作如下所示:

图片

脚本文本:

url u;//定义一个url

for(int i = 1;i <= 20;i++)//写一个for循环,采集前20页内容

{

var y=i*7;//定义y为i*7

u.title = i;//输出url名称为页数

u.urlname = "https://api.bilibili.com/x/web-interface/web/channel/category/channel_arc/list?id=1&offset="+y;//根据翻页请求规律拼翻页请求链接

u.entryid = CHANN.id;//

u.tmplid = 2;关联模板2

RESULT.AddLink(u);

}

⑦采集预览,如下图所示,表示翻页链接已生成。

图片

3.采集up主信息

①在浏览器中打开任意一个翻页请求的链接,可发现up主的信息就在返回的数据值中。而且每个【archive_channels】的数组中有6个值,每个值中的【archives】数组中有6个值即为每个up主的信息。

图片

②通过观察可发现,视频链接规律为:

https://www.bilibili.com/video/+视频id+?spm_id_from=

Up主主页链接为:

https://space.bilibili.com/+up主id+?spm_id_from=

③新建模板02,在其下新建一个数据抽取。

图片

④新建一个数据表单,具体步骤和字段属性如下所示:

图片

⑤关联数据表单,如下图所示:

图片

⑥脚本取值,新建脚本,具体如下图所示:

图片

脚本文本如下所示:

var ur=URL.urlname;//定义ur变量为当前请求链接,即翻页请求链接

var doc = EXTRACT.OpenDoc(CHANN, ur, "");//打开请求

var tstr = doc.GetDom().GetSource().ToStr().Right("archive_channels\":");//打开请求中的dom树,获取源码,并取archive_channels":右侧的所有源码

jScript js;//定义一个js

var obj = js.RunJson(tstr);//执行tstr代码并返回一个对象

var k=1;//定义k为1,为后续自增主键准备

for(var i=0;i<=6;i++){//for循环取【archive_channels】中的6个对象

var obj_a=obj[i].archives;//定义obj_a为第i个对象中的【archives】数组

for(var j=0;j<=5;j++){//for循环取【archives】中的6个对象

var obj_b=obj_a[j];//obj_b为数组中的第j个对象

var title=obj_b.name;//title为j对象中的name值

var id=obj_b.id;//id为j对象中的id值

var view_count=obj_b.view_count;//view_count为j对象中的view_count值

var like_count=obj_b.like_count;//like_count为j对象中的like_count值

var author_name=obj_b.author_name;//author_namet为j对象中的author_name值

var author_id=obj_b.author_id;//author_id为j对象中的author_id值

var bvid=obj_b.bvid;//bvid为j对象中的bvid值

record re;

re.id= k;//主键

re.title = title;//视频名

re.videoid = id;//视频id

re.view_count = view_count; //播放量

re.like_count = like_count;//点赞量

re.author_name = author_name;//up主名

re.author_url = "https://space.bilibili.com/"+author_id+"?spm_id_from=";//uo主主页链接

re.videourl ="https://www.bilibili.com/video/"+bvid+"?spm_id_from==";//视频页链接

RESULT.AddRec(re,this.schemaid);

k=k+1;//k自增

}

}

EXTRACT.CloseDoc(doc);//关闭请求

⑥采集预览

图片

l 采集步骤

模板配置完成,采集预览没有问题后,可以进行数据采集。

①首先要建立采集数据表:

选择【数据建表】,点击【表单列表】中该模板的表单,在【关联数据表】中选择【创建】,表名称自定义,这里命名为【bilibili】(注意命名不能用数字和特殊符号),点击【确定】。创建完成,勾选数据表,并点击右上角保存按钮。

图片

②选择【数据采集】,勾选任务名称,点击【开始采集】,则正式开始采集。

图片

③采集中:

图片

④采集结束后,可以在【数据浏览】中,选择数据表查看采集数据,并可以导出数据。

图片

⑤导出的文件打开如下图所示:

图片

l 前嗅简介

前嗅大数据,国内领先的研发型大数据专家,多年来致力于大数据技术的研究与开发,自主研发了一整套从数据采集、分析、处理、管理到应用、营销的大数据产品。前嗅致力于打造国内第一家深度大数据平台!

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python网络爬虫可以分为以下几个步骤: 1. Python基础知识:掌握Python的基本语法、变量、数据类型、函数、模块、文件操作等知识。 2. 习HTTP协议和HTML语言:了解HTTP协议和HTML语言的基本知识,包括HTTP请求和响应、HTML标签和结构等。 3. 爬虫框架和库:习使用Python中的爬虫框架和库,如requests、Beautiful Soup、Scrapy等。 4. 爬取网页数据:通过爬虫框架和库,编写Python脚本实现爬取网页数据的功能,如获取网页源代码、解析HTML结构、提取数据等。 5. 存储和处理数据:将爬取到的数据存储到本地文件或数据库中,并进行数据处理和分析。 以下是具体的习步骤: Step 1:Python基础知识 推荐习资料:《Python编程快速上手》、《Python基础教程》等。 Step 2:习HTTP协议和HTML语言 推荐习资料:《图解HTTP》、《HTML和CSS设计和构建网站》等。 Step 3:爬虫框架和库 推荐习资料:官方文档、《Python爬虫开发与项目实战》等。 Step 4:爬取网页数据 以爬取豆瓣电影Top250为例,以下是一个简单的Python爬虫: ```python import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/top250' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') movies = soup.find_all('div', class_='hd') for movie in movies: print(movie.a.span.text) ``` 该爬虫使用requests库发送HTTP请求,使用Beautiful Soup库解析HTML结构,获取豆瓣电影Top250的电影名。 Step 5:存储和处理数据 可使用Python内置的文件操作函数或第三方库如pandas、numpy等对爬取到的数据进行存储和处理。 以上是从零开始Python网络爬虫的基本步骤,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值