网页数据抓取怎么写(WebScraper有多么好爬,以及大致怎么用问题)
优采云 发布时间: 2021-12-24 07:06网页数据抓取怎么写(WebScraper有多么好爬,以及大致怎么用问题)
网上有很多使用Python爬取网页内容的教程,但一般都需要自己写代码,没有相应基础的人短期内有入门门槛。事实上,在大多数场景下,Web Scraper(一款Chrome插件)都可以快速抓取到目标内容。重要的是不需要下载东西,基本没有代码知识。
在开始之前,有必要先简单了解几个问题。
一个。什么是爬虫?
一个自动抓取目标网站内容的工具。
湾 爬虫有什么用?
提高数据效率采集。没有人愿意让他们的手指重复复制和粘贴操作。机械的事情应该留给工具来做。快速采集数据也是分析数据的基础。
C。爬虫的原理是什么?
要理解这一点,我们需要了解为什么人类可以浏览网页。我们通过输入URL、关键字、点击链接向目标计算机发送请求,然后将目标计算机的代码下载到本地,然后解析/渲染到我们看到的页面中。这就是上网的过程。
爬虫所做的就是模拟这个过程,但是比人的动作要快,而且可以自定义爬取内容,然后存入数据库中,供浏览或下载使用。搜索引擎可以工作,原理相同。
但爬虫只是工具。要使工具发挥作用,他们必须了解您想要什么。这是我们必须要做的。毕竟,人脑电波不能直接流入计算机。也可以说爬虫的本质就是寻找模式。
Lauren Mancke 在 Unsplash 上的照片
以豆瓣电影Top250为例(很多人练习这个是因为豆瓣网页是有条理的),看看网络爬虫是多么的简单,以及如何使用它。
1、在Chrome App Store中搜索Web Scraper,然后点击“添加扩展”,即可在Chrome插件栏中看到蜘蛛网图标。
(如果你日常使用的浏览器不是Chrome,强烈建议更换,Chrome与其他浏览器的区别就像谷歌与其他搜索引擎的区别)
2、打开要爬取的网页,比如豆瓣Top250的网址,然后同时按option+command+i进入开发者模式(如果你用的是windows是ctrl+shift +i,不同浏览器默认快捷键可能不同)。这时候可以看到网页上弹出一个对话框。别担心,这只是当前网页的 HTML(一种超文本标记语言,它创建了网络世界的砖块和瓷砖)。
只要按照步骤1添加Web Scraper扩展程序,就可以在箭头所指的位置看到Web Scraper,点击它,就是下图所示的爬虫页面。
3、 点击create new sitemap,依次创建sitemap创建爬虫。填写站点地图名称,仅供自己识别,如dbtop250(不要写汉字、空格、大写字母)。一般将要爬取的网页的网址复制粘贴到起始网址中,但为了让爬虫了解我们的意图,最好先观察网页布局和网址。25 页。
第一页的网址是
第二页以
第三页是
...
只有一个数字略有不同。我们的意图是抓取top250电影数据,所以不能简单粘贴起始url,应该是[0-250:25]&filter=
注意start后[]里面的内容,表示每25日为一个网页,抓取10个网页。
最后点击Create sitemap,爬虫就搭建好了。
(URL也可以爬取,但不能让Web Scraper明白我们要爬取的是top250所有页面的数据,只会爬取第一页的内容。)
4、 爬虫搭建好之后的工作才是重点。为了让 Web Scraper 理解意图,必须创建一个选择器并单击添加新选择器。
然后就会进入选择器编辑页面,其实就是一个简单的一点点。其原理是几乎所有用HTML编辑的网页,组成元素都是相同或相似的盒子(或容器),每个容器中的布局和标签都是相似的。页面越规则越统一,从HTML代码也可以看出。
所以,如果我们设置好选择元素和顺序,爬虫就可以根据设置自动模拟选择,数据就可以整齐的往下爬了。在爬取多个元素的情况下(比如想同时爬豆瓣top250,爬排名、片名、评分、一句话影评),可以先选择容器,再选择元素依次放入容器中。
如图所示,
5、第4步只是创建一个容器选择器。Web Scraper 仍然不理解要爬取的东西。我们需要在容器中进一步选择我们想要的数据(电影排名,电影名称,评分,一句话电影评论)。
完成第4步保存选择后,会看到爬虫的根目录,点击创建的容器一栏。
看到容器根后跟根目录,点击添加新选择器创建子选择器。
再次进入选择器编辑页面,如下图所示。这次不同的是id字段填的是我们要抓取的元素的定义,随便写,比如先抓取电影排名,写一个数字;因为排名是文本类型,在类型中选择文本;这次只选择了一个容器中的一个元素,因此未选中 Multiple。另外,在选择排名的时候,不要选错地方,因为你选择什么爬虫都可以爬。然后单击完成选择并保存选择器。
这时候爬虫已经知道要爬取top250网页中所有容器的视频排名。同理,再创建3个子选择器(注意在container目录下),分别抓取电影名、评分、一句话影评。
创建之后就是这种情况。这时候所有的选择器都已经创建好了,爬虫已经完全理解了意图。
6、 接下来就是让爬虫跑起来,点击sitemap dbtop250,依次爬取
这时候Web Scraper会让你填写请求间隔和延迟时间,保持默认2000(单位是毫秒,也就是2秒),除非网速很快或者很慢,然后点击开始刮伤。
当我们到达这里时,会弹出一个新的自动滚动网页,这是我们在创建爬虫时输入的网址。大约一分钟左右,爬虫完成工作,弹窗自动消失(自动消失表示爬取完成)。
而Web Scraper页面就会变成这样
7、 点击刷新,可以预览爬虫结果:豆瓣电影top250排名、电影名称、评分、一句话影评。看看有没有问题。(比如有null,如果有null,说明对应的选择器没有选好,一般页面越规则,null越少。当遇到HTML不规则的网页时,比如知乎,空值比较多,可以返回调整选择器)
这时候,可以说大功告成了。依次点击sitemap dbtop250和Export date as CSV即可下载CSV格式的数据表,然后就可以使用了。
值得一提的是,浏览器抓取的内容一般存储在本地starage数据库中,功能单一,不支持自动排序。所以如果你不安装额外的数据库并设置它,爬取的数据表将是乱序的。在这种情况下,一种解决方案是将其导入谷歌表,然后进行清理。另一种一劳永逸的方法是安装一个额外的数据库,比如CouchDB,在爬取数据之前,将数据存储路径改为CouchDB,然后爬取数据,预览和下载,是有顺序的,比如上面的预览图。
这整个过程看似麻烦,但熟悉之后其实很简单。这种小规模的数据从头到尾两三分钟就OK了。而像这种小规模的数据,爬虫还没有完全发挥出它的用途。数据量越大,爬虫的优势越明显。
比如爬取各个主题的选定内容可以同时爬取,2万条数据只需要几十分钟。
自拍
看到这里,你觉得还是按照上面的一步一步来比较费力,还有一个更简单的方法:
通过导入站点地图,复制粘贴下面的爬虫代码,导入,就可以直接开始抓取豆瓣top250的内容了。(它是由上面的一系列配置生成的)
{"_id":"douban_movie_top_250","startUrl":[";filter="],"selectors":[{"id":"next_page","type":"SelectorLink","parentSelectors":["_root ","next_page"],"selector":".next a","multiple":true,"delay":0},{"id":"container","type":"SelectorElement","parentSelectors" :["_root","next_page"],"selector":".grid_view li","multiple":true,"delay":0},{"id":"title","type":"SelectorText" ,"parentSelectors":["container"],"selector":"span.title:nth-of-type(1)","multiple":false,"regex":"","delay":0},{"id":"number","type":"SelectorText","parentSelectors":["container"],"selector":"em","multiple":false,"正则表达式 ":"","delay":0}]}
最后,这个文章只涉及到Web Scraper和爬虫的冰山一角。不同的网站有不同的风格,不同的元素布局,不同的爬取要求,不同的爬取方式。
比如有的网站需要点击“加载更多”加载更多,有的网站下拉加载,还有的网页乱七八糟,有时需要限制爬取次数(否则,抓取次数保持抓取),有时需要抓取二级和多级页面的内容,有时需要抓取图片,有时需要抓取隐藏信息,等等。有很多情况。攀登豆瓣top250只是入门体验版。只有了解了爬取的原理,遵守了网站的规则,才能真正的使用Web Scraper,爬到自己想要的东西。
Hal Gatewood 在 Unsplash 上的标题图片
如果您有任何问题或其他,欢迎微信 m644003222