为了作一个百度网盘搜索引擎,哥开始研究爬虫,今后迷上爬虫而一发不可收拾,如今就大概谈谈哥的爬虫之路,顺便给出引擎:http://www.quzhuanpan.com浏览器
首先基本的 Python 语法你要了解吧,推荐一本书《Python基础教程》,很适合入门。服务器
其次分析你的爬虫需求。程序具体 流程是怎么样的?把程序的大体框架搭起来。另外可能还有哪些难点?cookie
而后了解一下通常写爬虫须要用哪些库,这些库能够很好的帮助你解决不少问题。推荐强悍的 Requests: HTTP for Humans 另外还有其余一些库 如 urllib2 BeautifulSoup 均可以了解下。多线程
动手开始写了,遇到问题 Google 便可,Google 不行就上知乎问,我遇到的一个问题就是知乎私信大牛解决的。在写的过程当中还会学到不少相关的知识,好比说HTTP协议, 多线程 等等。框架
这里大概说说几种特殊状况处理:函数
一、 对于登录状况的处理post
这种状况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie存入本地。网站
二、使用cookie登录搜索引擎
使用cookie登录,服务器会认为你是一个已登录的用户,因此就会返回给你一个已登录的内容。所以,须要验证码的状况可使用带验证码登录的cookie解决。url
三、适用状况:限制IP地址状况,也可解决因为“频繁点击”而须要输入验证码登录的状况。 这种状况最好的办法就是维护一个代理IP池,网上有不少免费的代理IP,参差不齐,能够经过筛选找到能用的。对于“频繁点击”的状况,咱们还能够经过限制爬虫访问网站的频率来避免被网站禁掉
四、适用状况:限制频率状况。
Requests,Urllib2均可以使用time库的sleep()函数:
五、有些网站会检查你是否是真的浏览器访问,仍是机器自动访问的。这种状况,加上User-Agent,代表你是浏览器访问便可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,通常再加上Referer。
谢谢看官
本人建个qq群,欢迎你们一块儿交流技术, 群号:512245829 喜欢微博的朋友关注:转盘娱乐便可