不用代码,10分钟就能学会的网络数据采集方法

in #cn7 years ago

有人问,你为什么要学数据?

有人回答说,在越来越智能的时代里,学习数据起码能够让我知道为什么会输。这就足
以说明数据的重要性。在当下无论是大型如腾讯、google、facebook、阿里巴巴等公司,还是小型到几个人甚至是个人投资,数据是公司决策的重要依据,特别腾讯 ceo 马化腾决策极其依赖数据。

例如打算买房买车时,通常人往往会参考别人的意见,但是会数据的人通常就会爬取专业网站的评论、价格走势数据、位置数据、年政策情况、价格优惠情况,然后综合做出更加理智明确的分析。

在互联网全面发展的时代里,互联网上的数据更加丰富,可以说能够找到你想要的所有输,当然,这得依托于数据采集技术的发展和完善,数据距离我们生活越来越近,数据获取的方式也越来越多,当然各大网站的发爬虫能力也愈加强大,这是一个博弈的过程,也说明数据采集存在一定的难度。

就目前而言,最为理想的爬虫工具就是自己编程的爬虫代码,几乎很多代码都可以写出很漂亮的爬虫代码,个人最为理想的就是 python 了,它可以用很少的简洁的代码就可以写出高效的代码,当然像 java、c、ruby、php 等语言都可以写出爬虫,但是掌握的成本要比python 高很多;其次就是一些爬虫软件,例如火车头、八爪鱼,以及今天要介绍的 google插件——web scraper。

Web scraper 是 google 强大插件库中非常强大的一款数据采集插件,有强大的反爬虫能力,只需要在插件上简单地设置好,可以快速抓取知乎、简书、豆瓣、大众、58 等大型、中型、小型的 80%以上的网站,包括文字、图片、表格等内容,最后快速导出 csv 格式文件。Google 官方对 web scraper 给出的说明是:

使用我们的扩展,您可以创建一个计划(sitemap),一个web站点应该如何遍历,以及应该提取什么。使用这些sitemaps,web刮刀将相应的导航站点并提取所有数据。稍后可以将剪贴数据导出为CSV。

本系列是关于 web scraper 的系类介绍,将会完整介绍流程介绍,用知乎、简书等网站为例介绍如何采集文字、表格、多元素抓取、不规律分页抓取、二级页抓取、动态网站抓取,以及一些反爬虫技术等全部内容。
Ok,今天就介绍 web scraper 的安装以及完整的抓取流程。

一、web scraper 的安装

Web scraper 是 google 浏览器的拓展插件,只需要在 google 浏览器上安装就可以
了,介绍 2 种安装方法:

1、打开 google 浏览器更多工具下的拓展程序——进入到 chrome 网上应用点——搜索 web scraper——然后点击安装就可以了,如下图所示。
1.png

但是以上的安装方法需要翻墙到国外的网站上,所以需要用到 vpn,如果有 vpn 的就可以用这种方法,如果没有就可以用下面的第二种方法:


完整完后就马上可以使用了。
二、以知乎为例介绍 web scraper 完整抓取流程
1、打开目标网站,这里以采集知乎第一大 v 张佳玮的关注对象为例,需要爬取的是关
注对象的知乎名字、回答数量、发表文章数量、关注着数量。

2、在网页上右击鼠标,选择检查选项,或者用快捷键 Ctrl + Shift + I / F12 都打开Web Scraper。

3、打开后点击 create sitemap 选择 create sitemap 创建一个站点地图。

点击 create sitemap 后就得到如图页面,需要填写 sitemap name,就是站点名字,这点可以随便写,自己看得懂就好;还需要填写 start url,就是要抓取页面的链接。填写完就点击 create sitemap,就完成创建站点地图了。

具体如下图:

4、设置一级选择器:选定采集范围
接下来就是重中之重了。这里先介绍一下 web scraper 的抓取逻辑:需要设置一个一
级选择器(selector),设定需要抓取的范围;在一级选择器下建立一个二级选择器(selector),设置需要抓取的元素和内容。
以抓取张佳玮关注对象为例,我们的范围就是张佳玮关注的对象,那就需要为这个范围创建一个选择器;而张佳玮关注的对象的粉丝数、文章数量等内容就是二级选择器的内容。具体步骤如下:
(1) Add new selector 创建一级选择器 Selector:

点击后就可以得到下图页面,所需要抓取的内容就在这个页面设置。

id:就是对这个选择器命名,同理,自己看得懂就好,这里就叫 jiawei-scrap。Type:就是要抓取的内容的类型,比如元素 element/文本 text/链接 link/图片image/动态加载内 Element Scroll Down 等,这里是多个元素就选择 element。Selector:指的就是选择所要抓取的内容,点击 select 就可以在页面上选择内容,这个部分在下面具体介绍。
勾选 Multiple:勾选 Multiple 前面的小框,因为要选的是多个元素而不是单个元素,当勾选的时候,爬虫插件会识别页面下具有相同属性的内容;
(2)这一步就需要设置选择的内容了,点击 select 选项下的 select 得到下图:

之后将鼠标移动到需要选择的内容上,这时候需要的内容就会变成绿色就表示选定了,这里需要提示一下,如果是所需要的内容是多元素的,就需要将元素都选择,例如下图所示,绿色就表示选择的内容在绿色范围内。

选择内容范围后,点击鼠标,选定的内容范围就会变成如下图的红色:

当一个内容变红后,我们就可以选择接下来的第二个内容,点击后,web scraper 就会自动识别你所要的内容,具有相同元素的内容就都会变成红色的。如下图所示:

检查这个页面我们需要的内容全部变成红色之后,就可以点击 Done selecting 选项了,就可以得到如下图所示:

点击 save selector,保存设置。到这里后,一级选择器就创建完成了。

5、设置二级选择器:选择需要采集的元素内容。
(1)点击下图中红框内容,就进入一级选择器 jiawei-scrap 下:

(2)点击 add new selector 创建二级选择器,来选择具体内容。

得到下图,这跟一级选择器的内容是相同的,但是设置是有区别的。

➢ id:代表抓取的是哪个字段,可以取该字段的英文,比如要选「作者」,就写「writer」;
➢ Type:这里选 Text 选项,因为要抓取的是文本内容;
➢ Multiple:不要勾选 Multiple 前面的小框,因为在这里要抓取的是单个元素;
➢ 保留设置:其余未提及部分保留默认设置。
(3)点击 select 选项后,将鼠标移到具体的元素上,元素就会变成黄色,如下图所示:

在具体元素上点击后,元素就会变成红色的,就代表选定该内容了。

(4)点击 Done selecting 后完成选择,再点击 save selector 后就可以完成关注对象知乎名字的选取了。

重复以上操作,直到选完你想爬的字段。

(5)点击红框部分可以看到采集的内容。

Data preview 可以看到采集内容,edit 可以对设置的内容做修改。

6、爬取数据
(1)只需要设置完所有的 Selector,就可以开始爬数据了,点击 Scrape map,
选泽 scrape;:

(2)点击后就会跳到时间设置页面,如下图,由于采集的数量不大,保存默认就可以,点击 start scraping,就会跳出一个窗口,就开始正式采集了。

(3)稍等一会就可以得到采集效果,如下图:

(4)选择 sitemap 下的 export data as csv 选项就可以将采集的结果以表格的形式导出。

表格效果:
2、通过链接:http://pan.baidu.com/s/1skXkVN3 密码:m672,下载 web scraper安装程序,然后直接将安装程序拖入到 chrome 中的拓展程序就可以完成安装了。 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png 11.png 12.png 13.png 14.png 15.png 16.png 17.png 19.png 18.png 20.png 21.png 22.png 23.png 24.png 25.png 26.png 27.png 28.png 29.png

上面是单页面采集,那如果要设置多个页面呢?需要怎么设置呢?会在下篇文章中具体写出来。

Sort:  

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://zhuanlan.zhihu.com/p/31050270