一:什么是爬虫?
通过编写程序,模拟浏览器上网,然后让其去互联网抓取数据的过程。我们将其称之为爬虫。
通过上边的定义,我们可以发现有两个关键词比较值得注意,分别是“模拟”,“抓取”,要充分的去理解这两个操作。
二:爬虫分类
爬虫可分为三大类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫。
1:通用网络爬虫:是搜索引擎的重要组成部分,抓取的是一整张网页。通用网络爬虫需要遵守 robots 协议,网站通过此协议告诉搜索引擎哪些页面可以抓取,哪些页面不允许抓取。
robots 协议 :是一种“约定俗称”的协议,并不具备法律效力,它体现了互联网人的“契约精神”。行业从业者会自觉遵守该协议,因此它又被称为“君子协议”。
2:聚焦网络爬虫:是面向特定需求的一种网络爬虫程序。它属于建立在通用爬虫之上,抓取的是页面中标特定的局部内容
3:增量式网络爬虫:检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据。
三:爬虫应用
1) 数据分析
我这里有个习惯,一般想买大件商品的时候,会在各大平台上爬取一下这个产品的历史价格,去分析这个产品在什么价格的时候买入合适,避免在这个产品价格高位的时候买入
2) 商业领域
这部分我没有做过实战,但是在看二手房的时候,我会定期的去爬取二手房网站的数据,跟据预设的要求进行数据筛选,有合适的数据就发邮件提醒,这个就避免了我每天都去翻二手房的网站,要说商业价值,这个对那些房产经纪人来说应该还是有的……其他的我也没做过。
四:为什么用Python做爬虫
这个就是属于老生常谈了,简单粗暴的说,为什么用python做爬虫数据呢?因为python做爬虫简单,这话说的,就像说了话似的。
PHP,java,C/C++等其他语言都是可以做爬虫的
PHP对多线程以及异步的支持不是很好,并发能力较差
Java本身来说他的库足够多语言本身的兼容性也很好,但是,这也造成了他比较笨重,入门门槛比较高(我不会……我不想花太多时间学)
C/C++性能很好,但是写一个爬虫程序的代码量太大。入门成本比java高……
五:爬虫的合法性
这个东西只要别玩得太出格应该问题都不大吧,同时也不要抱有侥幸心理……玩大了网警真找你,更多请阅读《中华人民共和国网络安全法》。
为了限制爬虫带来的危险,大多数网站都有良好的反爬措施,并通过 robots.txt 协议做了进一步说明,
我们可以查看一下淘宝网的robots.txt
访问:
下面是淘宝网 robots.txt 的内容:
User-agent: Baiduspider
Disallow: /
User-agent: baiduspider
Disallow: /
从协议内容可以看出,淘宝网对不能被抓取的页面做了规定。因此大家在使用爬虫的时候,要自觉遵守 robots 协议,不要非法获取他人信息,或者做一些危害他人网站的事情。
且行且珍惜
有好的建议,请在下方输入你的评论。
欢迎访问个人博客 guanchao.site