Python爬虫(一)什么是爬虫

146 阅读3分钟

一:什么是爬虫?

通过编写程序,模拟浏览器上网,然后让其去互联网抓取数据的过程。我们将其称之为爬虫。

通过上边的定义,我们可以发现有两个关键词比较值得注意,分别是“模拟”,“抓取”,要充分的去理解这两个操作。

 

二:爬虫分类

爬虫可分为三大类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫。

1:通用网络爬虫:是搜索引擎的重要组成部分,抓取的是一整张网页。通用网络爬虫需要遵守 robots 协议,网站通过此协议告诉搜索引擎哪些页面可以抓取,哪些页面不允许抓取。

robots 协议 :是一种“约定俗称”的协议,并不具备法律效力,它体现了互联网人的“契约精神”。行业从业者会自觉遵守该协议,因此它又被称为“君子协议”。


2:聚焦网络爬虫:是面向特定需求的一种网络爬虫程序。它属于建立在通用爬虫之上,抓取的是页面中标特定的局部内容

3:增量式网络爬虫:检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据。

 

三:爬虫应用

1) 数据分析

我这里有个习惯,一般想买大件商品的时候,会在各大平台上爬取一下这个产品的历史价格,去分析这个产品在什么价格的时候买入合适,避免在这个产品价格高位的时候买入

2) 商业领域

这部分我没有做过实战,但是在看二手房的时候,我会定期的去爬取二手房网站的数据,跟据预设的要求进行数据筛选,有合适的数据就发邮件提醒,这个就避免了我每天都去翻二手房的网站,要说商业价值,这个对那些房产经纪人来说应该还是有的……其他的我也没做过。

 

四:为什么用Python做爬虫

这个就是属于老生常谈了,简单粗暴的说,为什么用python做爬虫数据呢?因为python做爬虫简单,这话说的,就像说了话似的。

PHP,java,C/C++等其他语言都是可以做爬虫的

PHP对多线程以及异步的支持不是很好,并发能力较差

Java本身来说他的库足够多语言本身的兼容性也很好,但是,这也造成了他比较笨重,入门门槛比较高(我不会……我不想花太多时间学)

C/C++性能很好,但是写一个爬虫程序的代码量太大。入门成本比java高……

 

五:爬虫的合法性

这个东西只要别玩得太出格应该问题都不大吧,同时也不要抱有侥幸心理……玩大了网警真找你,更多请阅读《中华人民共和国网络安全法》。

为了限制爬虫带来的危险,大多数网站都有良好的反爬措施,并通过 robots.txt 协议做了进一步说明,

我们可以查看一下淘宝网的robots.txt

访问:

www.taobao.com/robots.txt

下面是淘宝网 robots.txt 的内容:

User-agent: Baiduspider
Disallow: /
User-agent: baiduspider
Disallow: /

 

从协议内容可以看出,淘宝网对不能被抓取的页面做了规定。因此大家在使用爬虫的时候,要自觉遵守 robots 协议,不要非法获取他人信息,或者做一些危害他人网站的事情。

 

且行且珍惜

 

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site