Python爬虫-机器协议的设定与测试
机器协议放在网站的根目录下,文件名为robots.txt
User-Agent表示爬虫名称
Allow表示允许
Disallow表示不允许
机器协议确定爬虫可以爬取的范围的规则是:“疑罪从无”,即 “没有说不允许(不做限定),就是允许”,因此很多时候对爬虫权限的限定不止有允许,还会在每个协议片段后,加上“Disallow:/”,
目的是表示,除了这一片段里明确提到允许的的权限,其他目录的访问权限全为不允许。
例子:
此时
爬虫friend被允许访问的位置是根目录下的friend、public以及index.html
爬虫classmate被允许访问的位置是根目录下的public、other、index.html
爬虫***被允许访问的位置是根目录下的所有文件
其他爬虫不允许访问根目录下的所有文件
接下来是测试部分
测试我采用的是在自己的电脑上使用Tomcat作为服务器,Tomcat所需的Java我已安装并配置完成,不在赘述
Tomcat我下载的是8.5版本,解压到一个纯英文路径下的文件夹即可
首先将robots.txt复制到解压后的Tomcat文件夹中的\webapps\ROOT路径下
之后再将打开解压后的Tomcat文件夹下的bin,双击启动 “startup.bat”
(可能会出现闪退情况,可能是Java环境变量没有设置好,百度 "startup.bat"闪退 即可找到相应解决方法)
正常情况下会弹出一个窗口,这个窗口不用关,最小化即可,稍等一会服务器就启动完毕了(启动完窗口也不会关,最小化就好不用管它)
服务器启动完成之后我们打开浏览器访问 “localhost:8080” 就会弹出Tomcat样式的网页,这验证了我们的网页已经启动成功了
此时我们可以在robots.txt的存放位置(BOOT文件夹内)创建四个文件夹、一个html文件,文件夹分别是friend、other、private、public
html文件是index.html(注:这个html文件创建后,再次打开 “localhost:8080” 这一页面时,这一页面会显示空白)
在此基础上,再在刚刚创建的四个文件夹中各创建一个html文件 “index.html” 这些html文件的内容没有特殊要求
接下来是使用Python代码对机器协议的设定进行验证
首先建立一个类,用于读取机器协议
先通过定义 __init__
这一函数,将想要访问的域名转化为self中的一部分,并且return一个空值,目的是将变量初始化
接下来定义print_info
用于打印robot协议(使用对应函数读取,方便函数返回对应爬虫是否有相应权限),并将得到的结果返回。
再接下来再建立一个类,用于打印爬虫被允许爬取的范围
最后放在主函数中执行