不会写代码,如何抓取网页里的信息?


经验技巧
  •   2016-04-06 周三

    火箭君之前给大家提供过一个随机数据制造器(==Dummy Data生成器来了,你还为造数据而痛苦吗?==),能根据需要随机生成姓名、邮箱地址、句子…并且结果非常友善,复制到Excel就能用了。那么当我们在网站上看到一系列地址信息、商品信息甚至天气、新闻等真实信息,但因为数量庞大难以依靠手动复制黏贴来完整获取时,爬虫就能代替你完成所有工作。

    ——“如何向完全没有背景知识的人解释爬虫为何物?”

    ——“爬虫就是按一定规则替你浏览网页并复制黏贴东西下来的程序。”

    是的,听起来很很高级,是不是要写代码啊?!网上一搜什么Python+Scrapy啊,功能强大到爆。但即使这样对于某些结构简单且只用于江湖救急的网站数据获取未免显得有些小题大做了,而且普通用户很可能折在装python+scrapy包这件事上

    WebScraper登场

    这时候Chrome的一款爬虫插件就脱颖而出了!(http://webscraper.io/)名字就叫Web Scraper,web既可以指网络爬虫也能说明在线爬虫的意思,一语双关(也可能是我想多了……)

    如何安装插件此处略过,并且网站上有非常友好的introduce video,总之,安装好以后在Chrome下按F12就可以开始

    举一个椰子

    话不多说,来看椰子!哦不,栗子!春天是椰子上市的季节,就带大家来爬一下天猫上”椰青”的价格吧!

    1打开页面

    先来看一下我们感兴趣的”椰青及价格”页面

    没错!是我感兴趣的椰青!

    2喊出爬虫界面

    于是我们按提示打开在线爬虫的界面

    最右侧的Web Scraper tag就是我们之前安装的爬虫插件,从现在开始我们就要为爬虫建立一个复制黏贴数据的规则,以防获得一些不该获得的不想要的数据。

    3建立规则

    前面说过,爬虫是替你浏览网页并复制黏贴东西下来的东西,那么它就应该模拟你的行为。首先你打开这个界面,知道了这个网页是“我想要的数据起点”,那么对于爬虫来说,这就是他的root。所以我们来新建一个爬虫并告诉他:

    我们点击Create new sitemap来创建一个爬虫并给它起个名字~顺便告诉它起点(当前浏览器里的网址)。之后我们就会进入这个爬虫(taobao)的根目录下:

    4选择元素

    然后我们开始获取每一个商品的集合,单击add new selector,新增一个筛选器,选出所有的”椰青商品”元素:

    同样的取个名字,选择type为element,选择商品元素,当选择2个相同属性元素时插件会自动勾选上页面中所有该属性元素。

    点击done selecting完成选择,并勾上multiple。Save selector!!

    此时我们只需要从之前筛选出来的item元素中获取需要的字段就可以啦。 同样的我们在item目录下新建一些selector,由于需要获得的是文本信息,所以type需要变为text。

    此时一个简易的单页爬虫就做好了,在sitemap的下拉菜单中还可以选择graph来查看爬虫的结构。

    5点击Scrape开始爬

    6下载数据

    结束后数据会自动生成在视窗中,插件自带了导出为CSV的功能,可以一键下载。不小心关了也没关系,browse中可以看到上一次抓取的数据。

    翻页怎么办?

    如果要翻页的话就会困难一些,火箭君大概给个思路:正如item中的element会被遍历获取,那么同样的在root目录下新建一个翻页的link selector来实现“下一页“功能。 将item链接到link selector下,并且将link selector和之前创建的item selector链接到自己来实现一个死循环知道下一页不存在或者下一页unable

    循环建立好以后就可以成了下面这个样子:

    So What?

    你可能要问:So What?

    火箭君用这个工具抓了瓜子二手车全国几百台在售的二手宝马3系的价格,看一下不同车龄的宝马3系轿车在使用了若干年后的价格跌幅吧~

    编辑内容