【从零开始学爬虫】采集收视率排行数据

news2024/11/26 16:55:53

l 采集网站

​【场景描述】采集收视率排行数据。

【源网站介绍】收视率排行网提供收视率排行,收视率查询,电视剧收视率,综艺节目收视率和电视台收视率信息。

【使用工具】前嗅ForeSpider数据采集系统

【入口网址】http://www.tvtv.hk/archives/category/tv

【采集内容】

采集收视率排行网上省级卫视收视率数据,采集字段:标题、发布时间、排行内容。

【采集效果】

如下图所示:

l 思路分析

配置思路概览:

l 配置步骤

一.新建采集任务

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

二. 模板配置

1. 翻页链接采集配置

①查找翻页链接及其规律

在入口地址页内打开“F12”,按如下步骤找到翻页地址,并复制刷新后的翻页链接地址

对比观察翻页链接的规律观察:随着翻页变化,页码数与请求网址(Requestrian URL)中“page/”后的数字相关。所以,其规律为:http://www.tvtv.hk/archives/category/tv/page/+翻页页码

找到翻页链接位置及其规律就可以对应去编写脚本。

②脚本的创建与编写

【脚本的创建与编写】

脚本文本:

url u;

for ( var i=1;i<=165;i++){

u.title ="第"+i+"页";//页码

u.urlname = "http://www.tvtv.hk/archives/category/tv/page/"+i;

u.tmplid = 1; //模板关联

u.entryid = CHANN.id;

RESULT.AddLink(u,"","");

}

③查看采集预览

查看采集预览,并将链接粘贴到浏览器验证一下是否采集正确。

【采集预览】

2. 列表链接抽取配置

①添加链接抽取,更名为列表链接

②点击脚本窗口

③新建脚本

④编写列表链接抽取脚本

脚本文本:

var sta=DOM.FindClass("page-header","header",0);//定位到header标签

var list=sta.next;//定位下一子标签

while(list) {

var link=DOM.FindClass("entry-header","header",list);//定位到header标签

var linkin=link.child.child.child.child.next.child.child.child;//定位到列表链接所在标签

url u;//定义一个url

u.title = DOM.GetTextAll(link);//取标题

u.urlname =linkin.href;//取列表链接

u.entryid = this.id;

u.tmplid =2;//关联数据抽取模板

link=link.next;

list=list.next;

RESULT.AddLink(u,"","");//传递链接

}

⑤据观察发现,列表链接规律为:http://www.tvtv.hk/archives/而翻页链接规律为:http://www.tvtv.hk/archives/category/tv/page/此处则可以用地址过滤排除翻页链接,如图;然后复制任意一个列表链接到浏览器打开验证

3. 数据抽取

①新建模板、添加数据抽取

如下新建模板并添加数据抽取,在示例地址框内输入上一步复制的列表链接

【新建模板、添加数据抽取】

②数据表结构创建

如下在表结构内创建出所需采集的字段

【创建表结构】

③关联表单

数据抽取关联数据结构表单

【关联表单】

④创建并编写数据抽取脚本

如下创建脚本,并根据网页结构编写数据抽取脚本

【脚本的创建与编写】

脚本文本:

record re;//定义一个record记录集

var name=DOM.FindClass("entry-header","header",0);//定位到header标签

var cont=DOM.FindClass("entry-content","div",0);//定位到div标签

re.title=DOC.GetDom().GetTextAll(name.child);//取标题文本

re.time_sub=DOC.GetDom().GetTextAll(name.child.next.child);//取时间文本

re.content=DOC.GetDom().GetTextAll(cont).Right("排名");//取排名文本

re.id=MD5(URL.urlname) ;//id

RESULT.AddRec(re,this.schemaid);//输出结果

⑤查看采集预览

查看采集预览,并核对一下内容是否采集正确。

【采集预览】

l 采集步骤

三、数据采集

1.建立数据表单:

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

【建立关联数据表】

2.开始采集

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

【开始采集】

3.导出数据

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

【数据浏览】

【数据导出】

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

【查看导出数据】

本教程仅供教学使用,严禁用于商业用途!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

产线工控安全

场景描述 互联网飞速发展&#xff0c;工业4.0的大力推行&#xff0c;让工控产线更加智能化&#xff0c;生产网已经发展成一个组网的计算机环境。这些工控产线组网中的所有工控设备现在统称为主机。 信息化虽然提高各大企业的生产效率&#xff0c;但也会遭遇各类安全问题&…

Problem B: 算法10-15~10-17:基数排序

Problem Description 基数排序是一种并不基于关键字间比较和移动操作的排序算法。基数排序是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。 通过对每一个关键字分别依次进行排序&#xff0c;可以令整个关键字序列得到完整的排序。而采用静态链表存储记录&#xf…

FAST-LIO论文阅读

1. 摘要 本文提出一个开销较小且鲁棒的激光惯性里程计框架。使用迭代扩展卡尔曼滤波器来实现激光雷达特征点和IMU的紧耦合&#xff0c;可以在快速运动、有噪声或重复纹理等退化环境中鲁棒地定位。为了在测量数据量很大的情况下降低开销&#xff0c;提出了计算卡尔曼增益的新公…

如何做电商运营

电商是通过电子设备和网络技术进行的商业模式&#xff0c;通俗的来说也就是通过网络结识买家完成最终交易。电子商务凭借它便宜&#xff0c;丰富和方便的特性&#xff0c;迅速占领了中国一大半的经济市场&#xff0c;作为个人怎么才能做好电商呢&#xff1f;掌握这几个要点就不…

物联网开发笔记(63)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:显示中文

一、目的 这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程的第一步&#xff1a;显示中文。 二、环境 ESP32 3.2寸 ILI9341触摸屏 Thonny IDE 几根杜邦线 Win10 接线方法&#xff1a;请看上一篇文章。 三、流程介绍 …

Verilog刷题HDLBits——Conwaylife

Verilog刷题HDLBits——Conwaylife题目描述代码结果题目描述 Conway’s Game of Life is a two-dimensional cellular automaton. The “game” is played on a two-dimensional grid of cells, where each cell is either 1 (alive) or 0 (dead). At each time step, each c…

【图像融合】小波变换(加权平均法+局域能量+区域方差匹配)图像融合【含Matlab源码 1819期】

⛄一、小波变换彩色图像融合简介 1 前言 图像融合是将不同传感器所获得的多个图像根据某种算法进行融合处理,取长补短,使一幅图像能够更清楚、更准确地反映多幅图像的信息,多聚焦彩色图像融合是图像融合的一个分支。目前在各种图像采集与分析系统中已使用的CCD数码相机,对于聚…

分享7 个VUE项目用得上的JavaScript库

借助开源库加速VUE项目的开发进度是现代前端开发比较常见的方式&#xff0c;平常收集一些JavaScript库介绍&#xff0c;在遇到需要的时候可以信手拈来。 VUE 生态有很多不错的依赖库或者组件&#xff0c;是使用VUE开发前端的原因之一。 1. vueuse 这是 GitHub 上星最多的库之…

【coarse-to-fine:基于频谱和空间损失约束】

UPanGAN: Unsupervised pansharpening based on the spectral and spatial loss constrained Generative Adversarial Network &#xff08;UPanGAN&#xff1a;基于频谱和空间损失约束的生成式对抗网络的无监督全色锐化&#xff09; 研究发现&#xff0c;在大多数基于神经网…

扎根底层核心技术:OPPO发布旗舰蓝牙音频SoC芯片

OPPO自研芯片能力更进一步。 2022年12月14日&#xff0c;OPPO发布自研芯片马里亚纳MariSilicon Y&#xff0c;作为一颗旗舰蓝牙音频SoC&#xff0c;实现了三大核心技术突破&#xff0c;使OPPO具备了计算连接能力的蓝牙SoC平台的设计能力。 这是OPPO发布的第二款自研芯片。去年…

初学者数据分析——Python职位全链路分析

最近在做Python职位分析的项目&#xff0c;做这件事的背景是因为接触Python这么久&#xff0c;还没有对Python职位有一个全貌的了解。所以想通过本次分析了解Python相关的职位有哪些、在不同城市的需求量有何差异、薪资怎么样以及对工作经验有什么要求等等。分析的链路包括&…

用了那么久的Vue,你了解Vue的报错机制吗?

Vue的5种处理Vue异常的方法 相信大家对Vue都不陌生。在使用Vue的时候也会遇到报错&#xff0c;也会使用浏览器的F12 来查看报错信息。但是你知道Vue是如何进行异常抛出的吗&#xff1f;vue 是如何处理异常的呢&#xff1f;接下来和大家介绍介绍&#xff0c;Vue是如何处理这几种…

【数据结构】树以及二叉树的概念

作者&#xff1a;一个喜欢猫咪的的程序员 专栏&#xff1a;《数据结构》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 树的概念&#xff1a; 树的相关概念&#xff1a; 树如何表示&#xff…

Anaconda中Python虚拟环境的创建、使用与删除

本文介绍在Anaconda环境下&#xff0c;创建、使用与删除Python虚拟环境的方法。 在Python的使用过程中&#xff0c;我们常常由于不同Python版本以及不同第三方库版本的支持情况与相互之间的冲突情况&#xff0c;而需要创建不同的Python虚拟环境&#xff1b;在Anaconda的帮助下&…

如何使用Python构建Telegram机器人来生成随机引语

使用Python构建Telegram机器人以生成随机引语 聊天机器人是用于进行在线聊天对话的软件应用程序&#xff0c;通过文本或文本转语音的方式实现客户服务的自动化。[聊天机器人]可以用于提醒、预约等事情&#xff0c;也可以在社交媒体平台上使用。 在本教程中&#xff0c;我们将…

会自动化就能拿20K?不,你这顶多算会点皮毛···

前段时间公司要招2个自动化测试&#xff0c;同事面了几十个候选人&#xff0c;发现了一个很奇怪的现象&#xff0c;面试的时候&#xff0c;如果问的是框架api、脚本编写这些问题&#xff0c;基本上个个都能对答如流&#xff0c;等问到实际项目的时候&#xff0c;类似“怎么从0开…

如何实现一个基于WebRTC的音视频通信系统

文章有点长&#xff0c;推荐先收藏前言 目前市场上音视频技术方案大致分为以下几类&#xff0c;WebRTC因其超低延时、集成音视频采集传输等优点&#xff0c;是在线教育、远程会议等领域首选技术。 前言 目前市场上音视频技术方案大致分为以下几类&#xff0c;WebRTC因其超低延…

10年网安经验分享:一般人别瞎入网络安全行业

小白入门网络安全&#xff0c;如何选择方向&#xff1f; 如果你是一个新手小白&#xff0c;那么在最开始方向选择上面这一步是至关重要的&#xff0c;一旦你选错了那很可能就要和安全“saygoodbye”了。 很多小白刚开始的时候还没开始学会走就想着飞了&#xff0c;计算机功底…

四六级口语|考研复试口语|满满干货

目录 1.Which do you prefer to use, credit cards or cash?/Do you prefer the credit card or cash? 2.When you shop, do you prefer to go by yourself or with someone?

指针进阶(3)--玩转指针

指针进阶 内容不多&#xff0c;但面面俱到&#xff0c;都是精华 1.回调函数&#xff1a; 2.详解qsort函数参数&#xff1a; 回调函数就是&#xff0c;把一个函数的地址&#xff0c;放在函数指针中&#xff0c;然后将该指针作为一个参数&#xff0c;传到 另一个函数中&#x…