本文打算写成一个系列,刚开始觉得我写得比较浅,而简书这里比较高端,似乎有点不搭配,于是只放在了自己的博客上,后来一想万一有新入门的朋友想参考一下呢,于是就厚着脸皮也发在这吧。高手们请轻喷。
首先,说明一下我已经用python和C#完整实现了批量爬取微信公众号历史文章的功能,而且已经做成GUI式的软件。虽然跟专业选手相比我深知差距巨大,但是把经验分享出来至少能帮助到一部分新人朋友,所以抖胆写这个话题。还是请高手们轻喷。
但是,想找我要现成源代码的,想免费摘桃子的,抱歉了,我还指望这个赚点零花钱呢。
首先,想学爬虫不是看几篇贴子就能搞定的,也不是你朋友嘴里说的“很简单”几个字就能概括的,一切的一切都要从你自己的实际出发才行,比如有没有编程基础,一个文科生和一个过了计算机二级的理科生底子肯定是不一样的,但即使是后者仍然也要学很多东西才能做一个能跑起来并且他自己能说得懂为啥能跑起来的爬虫。
第一篇:爬虫,“爬”的是什么东东。
其实“爬虫”这个词汇挺贴切的,就是像蜘蛛这种“虫”一样去“爬”取网络上的资料,个人认为这个“爬”有两层含义:一是指互联网就是一个大网,我们要像蜘蛛一样在这个网上到处去爬,到处去搜集信息。二是指单个网页上可能有你需要的信息,我们要把这些信息从别人的网页上抓取到自己的本地,为我所用。
所以,顺着上面的两个含义,我们要学习这两个爬取的标的:
1、网络:即你要怎么从一个节点开始不停得去搜索到下一个目标节点,因特网太巨大了你不可能全爬下来,所以一定要有寻找目标的策略。不过好在问题不大,因为你可以先人工百度出你想要搜集的信息范围,或者,其实多数时候我们的爬取任务都是比较明确的,比如我要爬取微信公众号的文章,我一定是想知道我要爬取具体哪一个公众号的文章,而不是全网都爬(当然搜索全部公众号的文章也有办法),又比如我想爬取微博某个名人说过的话,那我直接去有针对性的爬取就可以了。
2、有了目标网页,还要会分析目标网页,而网页是由什么构成的呢?html 代码,加 js 和 css,多数网页你只会 html 也行,了解 js 和 css 则更好。大概随便找一本书或者一个在线免费网站学个三五天应该就差不多了。然后,一定要先试着自己用 html 写几个网页,加深对其语法的理解。然后,才能更准确得去解析这个网页。
OK,第一篇,先讲最基础的“概述”的第一部分,我们有的是时间,慢慢讨论。
书接上文
再强调一下,你要爬什么就要先了解什么,要对网页的呈现原理非常熟悉才可以,也许你现在还写不出漂亮的网页代码,但最最起码你看到一段源代码要知道它是啥意思。
不能眉毛胡子一把抓看着差不多就觉得爬了再说,也不能说“我觉得这个能爬”,“我看都看到了,难道不能保存下来吗”
以上这些,牛逼一点说,肯定能爬。现实一点说:够你爬一壶的。
基础牢固,事半功倍,基础不牢,事倍功半。
至于网页学习资料,网上太多了,就不讲了,但要注意一点:不要用Dreamweaver这种拖拉式的IDE,用这玩意你就走歪路了,用记事本直接自己写代码才是正道,但是不推荐windows下的记事本,有bug。可以下一个免费版的 notepad++ ,不要以为我这是随便讲讲,等你被坑的时候就知道该听我的了。
学html的同时你应该自然而然得就会学到一些css相关的知识,提醒一点:css绝不是你想象的那么简单易学的,有非常多的窍门和暗坑。我到现在都经常遇到怎么看代码都觉得应该能正常显示但实际看到的就是元素位置错乱的问题。这玩意需要经验积累,所以要虚心点学。
然后是js,最简单的学一点吧,还是那句话:要做到也许你还不会写,但起码要能看懂,如果看不懂也起码要能知道怎么去根据其中的关键字去百度搜索学习。
以上这些,是让大家了解自己要抓取的标的的基本信息。所谓知敌才能克敌嘛。
但是要怎么克?那就要找到自己克敌的武器了。也就是说,你还得学一门把网页上的内容抓取下来,然后分析和保存的语言。有很多种语言都可以实现这个功能,且基本每种语言都有一些现成的很好用的库,最常见的是python C# java php nodejs 等等,如果你只学一门的话建议学python,因为这玩意用的人多,现成的爬虫工具也多,你遇到问题时容易搜索到答案。
还有一个原因是:我对这个相对来说熟悉点。
再有一个原因:python 语言除了能做爬虫几乎能做任何其他事情。
最后一个原因:这玩意现在火呀,你还不得追追时髦啊,这样吹牛皮时也显得高端不是。
OK,今天先扯这么多。未完待续。
如果您对本系列文章有兴趣,记得关注本号哦。
网友评论