Python作为强大的脚本语言,非常适合编写网络爬虫。
在实际开始编写爬虫获取某一个网站数据的时候,应当对某一个网站有着充分的了解,方便后续程序的编写。
-
通过Google大致了解网站的大小
Google作为强大的搜索工具,本质上也是一个爬虫。通过在网址前添加site
关键字,可以先利用Google来大致了解网站的大小,并且支持/
来过滤结果。不过这种这种方法只能用来大致估算,并且对于一些大型网站,这种估算不是很准确。 -
通过robots.txt文件了解网站
目前虽然对于爬虫还没有一个正式的法规或协议来约束,但是大多数网站都会有一个robots.txt文件。文件中包含了一些建议,但并不会强制执行,它可以让我们以最快速度的了解到网站对于爬虫的限制,从而将来降低爬虫被封禁的风险。
(知乎的robot.txt真是简单粗暴。。)
User-agent定义了使用的用户代理,*
表示对于所有的用户代理;
Crawl-delay规定了两次抓取间的延时应为10s;
Disallow表示不允许爬取的页面。
识别建站技术
一个网站如何构建将对我们的爬取方式产生影响,我们可以使用Python的builtwith模块来帮助我们完成这一任务。可以通过pip install builtwith
命令很方便的安装这一模块。
以网站的URL作为参数来进行解析。
import builtwith
print builtwith.parse("http://bbc.com")寻找网站的所有者
因为不同的所有者对于爬虫的态度不尽相同,所以提前了解一个网站的所有者也是很有必要的。Python中提供了whois模块来完成这一任务。可以通过pip install python-whois
命令来很方便的安装这一模块。
可以看到域名归属于godaddy。