Web Scraper工作原理

Python技术杂谈 2018-12-13 16:56:31 阅读(6703) 评论(0)

上一篇老猿配置了一个简单的Sitemap让它运行起来,看官们跟着操作一遍,不知道对Web Scraper有没有一个整体的认知和印象。本篇我们聊一下Web Scraper的工作原理和上一篇里每步操作是什么意思。

还没看上一篇,先阅读一下,因为本篇是结合到上篇的操作例子来讲的。Web Scraper简单配置方法

Web Scraper的组成

Web Scraper是靠sitemap里配置的抓取规则来指挥如何抓取数据的。一个sitemap里由“Start URL” 和 多个嵌套”Selector”(通常有Link selector和Text selector)组成。如下图:

web-scraper-sitemap的组成

“Start URL”就是要抓取数据的入口URL。比如你要抓新浪体育新闻,那么入口URL就是 sports.sina.com.cn;要抓知乎旅行话题里面的帖子,入口就是zhihu.com/topic/19551556/hot 。Start URL就是网站里面的列表页/频道页,该页面下有很多链接(URL)。Web Scraper就是从这个入口开始抓取数据的。

Web Scraper的运行逻辑

我们再来看上图,Web Scraper先访问Start URL,把Start URL的页面抓下来,靠我们写的Link Selector把页面里面的链接抽出来,(所以叫Link selector),链接抽出来后,Web Scraper就挨个访问这些链接(这些链接是每个详细页面),然后靠我们写的Text Selector把详细页里的文本信息抽出来。
它会自己循环做这个事情,直到所有的页面抓完,抓完后会显示Finish字样,这时就可以选择 Export Data as CSV 把数据导出到本地。

那么Web Scraper是如何知道哪个页面该用Link Selector 还是 Text Selector呢?
你回到上一篇文章,看我们添加Selector时是有嵌套关系的,我们填完Start URL后就添加了一个Link Selector,告诉它 Start URL的页面用Link Selector来抽取,添加完后,我们点击进入了刚添加的Link Selector,然后在里面添加的Text Selector,是告诉它抽取内容信息时用这个selector,这是嵌套关系的,也可以叫做父子节点关系。

Web Scraper的工作原理大致就是这样,总结一下:
抓取时需要一个入口地址,Web Scraper就顺着这个地址一层一层的往下抓,然后靠着我们写的各种selector来抽取数据,直到所有的链接都抓完。写selector的时候要注意嵌套关系。
看起来还是挺简单的吧。我们用了两篇来操作演示和解释Web Scraper的原理,实际上简化了很多,后面的几篇老猿会写一些更详细,更细节的东西。

 

Web Scraper系列文章:

Web Scraper教程

Web Scraper配置方法

Web Scraper如何翻页

猿人学banner宣传图

我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.con 原创,没有猿人学授权,请勿以任何形式转载。***

说点什么吧...