有人问,你为什么要学数据?
有人回答说,在越来越智能的时代里,学习数据起码能够让我知道为什么会输。这就足
以说明数据的重要性。在当下无论是大型如腾讯、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——然后点击安装就可以了,如下图所示。
但是以上的安装方法需要翻墙到国外的网站上,所以需要用到 vpn,如果有 vpn 的就可以用这种方法,如果没有就可以用下面的第二种方法:
2、通过链接:http://pan.baidu.com/s/1skXkVN3 密码:m672,下载 web scraper安装程序,然后直接将安装程序拖入到 chrome 中的拓展程序就可以完成安装了。
完整完后就马上可以使用了。
二、以知乎为例介绍 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 选项就可以将采集的结果以表格的形式导出。
表格效果:
上面是单页面采集,那如果要设置多个页面呢?需要怎么设置呢?会在下篇文章中具体写出来。
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
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit