爬虫是什么?
相信大家对爬虫都不陌生,特别是做过网站的站长,这里也简单跟大家解释一下:
如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,
它会沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;
从技术层面来说就是通过程序模拟浏览器请求站点的行为,把站点返回的html代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。
举个栗子:
比如我的工作是新媒体小编,现在要学写作取标题,最简单的方式就是去目标公众号/网站等复制他们的标题到Excel来进行分析。
这样的傻瓜式操作很简单,但是效率很低,也很慢,而最高效的方式是什么呢?就是通过爬虫直接爬取我需要的标题,而这个过程仅仅需要1分钟。
废话不多说,跟我一起来操作吧。
01
准备工作
在你的浏览器安装:“webscraper”扩展,直接在浏览器应用市场下载即可,推荐使用chrome浏览器。
安装好之后,启用它。
进入你要爬取数据的页面,以下我将以知乎来为大家举例。比如我要爬取知乎小管家的所有文章标题,那么就先进入到知乎小管家的文章页面。
然后,按下键盘的F12,进入开发者工具。
当然有些浏览器不同,可能F12进入不了,你可以使用以下快捷键:
win:Ctrl+Shift+I
mac:Cmd+Opt+I, 或者 Tools / Developer tools
或者直接在页面按鼠标右键选择审查元素,或者是检查。比如我的是chrome浏览器,就是检查。
然后调出浏览器开发者工具。
默认是在浏览器的右侧,点击右上角三个点,选择第三个把他放到浏览器下方。
02
正式开始
第一步:创建sitemap
在开发者工具的菜单当中选择最后一个,也就是你刚刚安装的那个扩展:
然后在第二行里选择第三个,也就是:Create new sitemap
然后选择Create Sitemap
创建好之后会出现两个选项让你填写:
sitemap name:这个可自定义,比如我要抓取的是文章标题,那么我就填写biaoti就可以了。
start url:这个是你要爬取页面的URL,也就是我要把知乎小管家文章页面的链接复制到这里。
以下是我填好后的:
然后点击Create Sitemap,第一步就完成了。
第二步:添加 selector
点击add new selector
然后又出来一些选框:
id:因为我们要爬取的是标题,所以就填:“title”。type:这是个选项,一样,因为我们要爬取的是标题,也就是文本,所以这里我们就选默认的Text。Selector:最重要的一步,待会演示。Multiple:打上勾Regex:不用管Parent Selectors:不用管
以下是我填好的:
刚刚还有Selector这个最重要的一步我们没有做,现在我们来说说它,这里有3个选项,分别是:
1、Select = 选择器
2、Elementt preview = 预览
3、Data preview = 数据预览
其实大家如果看得懂英文就知道它的意思了。
现在我们开始操作,首先点击Select选择器,然后你会发现多出来一个窗口:
这个时候你会发现当你的鼠标移动到页面内容的时候会发生变化,我们把它移动到标题,然后点击一下标题,点击完成之后在点击下一个就OK了。
也就是我们一共要点击两下标题,第一个和第二个。点完之后是这样的:
你看,虽然我只点了第一个和第二个,但是它下面的所有标题都被选中了。
这里还要跟大家说明一下:
点第一个标题也可以说是定位,也就是说爬虫要从哪里开始抓取,比如上图,我也可以从第二个标题开始选择,然后点一下第三个标题,然后底下的标题就全部被选择,只有第一个不会被选中。
但它不能选择从哪里结束,只能定位开始。
标题全部被选中后,然后我们点击窗口的 Done selecting!
然后这一步我们就完成了,但是别忘了刚刚我们说到的Selector这里还个预览,也就是:
Elementt preview
Data preview
我们点击Elementt preview你会发现页面中的标题又全变红了,也就是选中了,再次点击就是取消预览;然后点击Data preview你会发现:
当然这个只是窗口预览,但其实如果只是标题的话,我们可以直接在这个窗口全部复制然后粘贴到电脑里。
但是还是建议大家下载下来哈。预览没问题之后,点击Save selector保存:
第三步:开始抓取
我们再次点击第二行菜单里的Sitemap biaoti,然后选择Scrape。
然后又会跳出来最后两个数据让你填写;
但是这个我们不用管它,默认的2000就好,直接点击Start scraping开始抓取。
也解释一下它的意思:
它意思是抓取的间隔时间以及页面加载延迟时间。
比如我要抓取知乎的多个页面,那就要设置间隔时间,这样可以避免被知乎的反爬虫监测到。
但如果你不设置间隔时间的话,一秒钟访问一个网站几十次甚至上百次,这很明显不是人为的,所以很容易触发该网站的反爬虫机制,后果就是会封掉你IP地址,你就再也别想在你的电脑上访问知乎这个网站了,更别提继续抓取了~
还有一点也要跟大家说明一下,你在抓取该网站数据的时候,你也会占用该网站的带宽,如果这个网站的带宽允许同时100个人访问,但你一秒钟就给它访问了几十上百次,可能会导致该网站其他用户无法打开页面,或者加载延迟等问题。
这会大大对该网站造成非常不好的影响,所以,各位可不要用这个去攻击别人的网站啊。虽然也没什么卵用~
设置好时间之后我们点击Start scraping开始正式抓取。
这个时候它会弹出一个窗口,我们不用管它,然后大概几秒钟后就抓取完了。
第四步:导出至本地
我们再次点击 Sitemap biaoti 选择 Export data as CSV
然后点击 Download now!下载。
然后我们用Excel打开:
怎么样,是不是很简单,如果你会英语,就更好理解了。