- A+
爬虫一直都是非常吸引人的一个方向,爬虫能做的事很多,但是很多人在新手期都会碰到该怎么入门,该怎么去学习他?爬虫就像一只刺猬。是不是给人一种无可下手的感觉呢?今天小编看了这段话,觉得还是非常有用的,大家借鉴一下!
看到前面很多答案都讲的“术”——用什么软件怎么爬,那我就讲讲“道”和“术”吧——爬虫怎么工作以及怎么在python实现。
先长话短说summarize一下:
你需要学习
以下是短话长说:
说说当初写的一个集群爬下整个豆瓣的经验吧。
在人民日报的首页,你看到那个页面引向的各种链接。于是你很开心地从爬到了“国内新闻”那个页面。太好了,这样你就已经爬完了俩页面(首页和国内新闻)!暂且不用管爬下来的页面怎么处理的,你就想象你把这个页面完完整整抄成了个html放到了你身上。
那么在python里怎么实现呢?
很简单
注意到这个特点,url如果被看过,那么可能以小概率重复看一看(没关系,多看看不会累死)。但是如果没被看过,一定会被看一下(这个很重要,不然我们就要漏掉一些网页了!)。 [IMPORTANT: 此段有问题,请暂时略过]
考虑如何用python实现:
在各台slave上装好scrapy,那么各台机子就变成了一台有抓取能力的slave,在master上装好Redis和rq用作分布式队列。
代码于是写成
但是如果附加上你需要这些后续处理,比如
-
有效地存储(数据库应该怎样安排)
-
有效地判重(这里指网页判重,咱可不想把人民日报和抄袭它的大民日报都爬一遍)
-
有效地信息抽取(比如怎么样抽取出网页上所有的地址抽取出来,“朝阳区奋进路中华道”),搜索引擎通常不需要存储所有的信息,比如图片我存来干嘛...
-
及时更新(预测这个网页多久会更新一次)
如你所想,这里每一个点都可以供很多研究者十数年的研究。虽然如此,
“路漫漫其修远兮,吾将上下而求索”。
所以,不要问怎么入门,直接上路就好了:)
谢谢阅读,不知道你有没有顿悟出学习爬虫的门路来呢?共勉!!!