【02】基础:单页采集(以微博博主主页采集为例)

痞子三分冷 提交于 2020-04-11 18:49:35

请先安装爬虫软件。爬虫软件安装

###前言 今天讲讲微博博主主页的采集。 目标是采集博主名称、微博内容、发博日期、微博内容、转发数、评论数和点赞数。 学习流程见下图——

输入图片说明

###一、加载页面,定义主题名 样本网址:最近很火的宝宝的微博主页 http://weibo.com/wbq?refer_flag=1001030101_&is_hot=1#_rnd1471331959489

操作参见图。

输入图片说明

###二、建立整理箱进行内容映射 点击操作栏中的“创建规则”,点击新建,给整理箱取一个名称,整理箱就是存放数据的地方,比如“列表”,箱子必须有,否则程序不知道把采集下来的数据放哪里。

输入图片说明

接下来告诉整理箱要采集的数据有哪些,分别取个名字。右击“列表”,选择“添加”,选择“包容”。

输入图片说明

输入抓取内容的名称(博主名称)之后,后点击保存。

输入图片说明

接下来,右击“博主名称”,选择“添加”,选择“其后”,同理,输入抓取内容的名称后点击保存。

输入图片说明

前面说了,我们要采集博主名称、微博内容、发博日期、微博内容、转发数、评论数和点赞数这些字段,那就重复上一步操作分别添加。

接下来要告诉爬虫哪些内容是想采集的(内容映射)——

  1. 在MS谋数台的浏览器窗口,点击博主名称之后,会自动定位到网页标签中的A节点,双击展开A节点,找出包含博主名称的#text节点,我们看到文本内容窗口显示的内容是王宝宝,说明博主名称对应的节点选对了
  2. 右击#text节点,选择“内容映射>博主名称”,这时定位编号的数字由-1变成了正数,说明映射到了 上面的操作相当于告诉MS谋数台“博主名称”抓什么。

同理,其他的抓取内容也按此操作,先在MS谋数台浏览器中点击要抓取的内容,双击展开在网页标签窗口中定位到的区块节点,找到#text节点,内容映射给抓取内容的名称。

###三、样例复制采集多条微博 点击“测试”按钮,弹出一个设置关键内容的框,之后将博主名称设置为关键内容,其实你可以设置任何一个抓取内容为关键内容,只要这个内容一定会在网页中出现就行了。

再次点击“测试”按钮,看到输出信息中只有一条微博内容。

要实现采集博主主页上的多条微博,那么就要做样例复制操作,看图。

  1. 将鼠标定位到整理箱的容器节点“列表”(容器节点才能做样例复制),勾选启用
  2. 点击网页上的第一个样例(红框),自动定位后,往上逐层点击找到能框住整个样例的区块节点,然后右击映射给样例1
  3. 同理,选中相邻的下一个区块节点,映射给样例2

接着点击测试,发现转发数、评论数和点赞数采集的内容不准了,这个原因后面的教程会详细讲解。

点击测试,将整理箱的定位偏好改为“偏好class”。

###四、保存规则,运行DS打数机抓取数据 再次点击测试,采集内容准确了,确认规则没错后点击“存规则”,然后点击“爬数据”,期间会弹出DS打数机在采集数据,不要关闭它

DS打数机页面变成空白表示采集已经完成,点击“文件>存储路径”可以看到DS打数机采集的数据保存在本地哪了

在本地“DataScraperWorks”文件夹中可以看以该规则命名的一个子文件,用浏览器将子文件中的XML格式打开,看到宝宝的第一页微博数据都采集下来了,bingo~

看到这里,留下两个问题——

  1. 怎么将XML格式的文件转为Excel格式?
  2. 怎么采集多页的微博数据呢?

后面再学。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!