最近刚刚了解网络爬虫,之前对于此技术只是听说用来抓取网络上的各种资源,而且网络爬虫已经出现很久了,至于现在有没有什么更好的技术出现小白就不清楚了。小白刚进坑请大神们多多指教。下面是我对网络爬虫的浅显认识。
一、定义的理解认识
所谓网络爬虫就是通过指定的URL根据自己需求抓取特定网页的特定内容,也就是把指定的网络资源从网络流中读取出来保存到本地或者数据库,最简单的就是保存到本地ttxt文档。这个过程类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求发送到服务器端,然后读取服务器端的相应资源。在这里,爬虫就是把网络看成一种文件,它对网络的访问就相当于对本地文件的访问,把请求和响应封装为流(相当于访问本地文件的输入输出流),因此我们可以得到响应流,之后从流中读取数据。
二、关于代理服务
在实际的项目中,网络环境十分复杂,有时会出现ip被禁的情况,在这种情况下就需要使用代理服务了。最浅显易懂的说法就想翻墙软件一样,使用其他的ip地址对国外网站进行访问。代理服务就需要ip、端口, 甚至账号密码。ip和端口是必须的,至于账号和密码就不一定了。
关于ip可以找一下代理网站,抓取一下ip,来进行动态的轮询就没问题了,也可以用别人做好的第三方ip代理平台,比如说crawlera,crawlera是一个利用代理IP地址池来做分布式下载的第三方平台,除了scrapy可以用以外,普通的java、php、python等都可以通过curl的方式来调用,具体如何设置可以查看 crawlera使用指南。
如果不使用第三方的平台做代理ip,我们就必须得手动抓取ip了,可以google搜索代理ip,可以找到一大堆网站,找几个稳定的代理网站,可以写一个爬虫脚本持续抓取,要是使用量不大的话,也可以手动粘贴抓取,要是土豪一点呢就买一点其实也可以,大概1块钱可以买几千个,还是挺值得的。
关于ip代理可以参考以下网站:
Linux IP代理筛选系统(shell+proxy)
http://blog.csdn.NET/ithomer/article/details/7639385
Linux 抓取网页实例(shell+awk)
http://blog.csdn.Net/sunboy_2050/article/details/7635301
关于使用动态轮训切换ip防止爬虫被封杀 http://xiaorui.cc/2015/01/12/%E5%85%B3%E4%BA%8E%E4%BD%BF%E7%94%A8%E5%8A%A8%E6%80%81%E8%BD%AE%E8%AE%AD%E5