使用 urllib 分析 Robots 协议
(1) Robots Exclusion Protocol,网络爬虫排除标准,也称爬虫协议、机器人协议,用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取
(2) Robots 协议以 robots.txt 文件的形式表示,一般放在网站的根目录下,爬虫和搜索引擎要根据文件的内容范围来爬取,如果文件不存在,爬虫便会访问所有可直接访间的页面
(3) 百度的爬虫协议:http://www.baidu.com/robots.txt 博客园的爬虫协议:https://www.cnblogs.com/robots.txt 简书的爬虫协议:https://www.jianshu.com/robots.txt
[root@localhost ~]# cat robots.txt //如下,表示只允许所有的搜索爬虫爬取public目录,其他目录禁止爬取
User-Agent:* //常见的搜索爬虫有:BaiduSpide 、Googlebot 、360Spider 、YodaoBot 等
Disallow:/
Allow:/public/
urllib 使用 robotparser 模块来解析 robots.txt,它可以根据某网站的 robots.txt 文件来判断是否有权限来爬取这个网页:
In []: from urllib.robotparser import RobotFileParser In []: robot = RobotFileParser() //创建一个解析器,用来存储Robots协议内容 In []: robot.set_url("https://www.cnblogs.com/robots.txt") //set_url()用于设置robots.txt文件的路径 In []: robot.read() //read()用于读取并分析robots.txt文件的内容,并把结果存储到解析器中 In []: robot.can_fetch("*", "https://www.cnblogs.com/pzk7788") //can_fetch()用于判断指定的搜索引擎是否能抓取这个URL
Out[]: True
使用 urllib 分析 Robots 协议的更多相关文章
- 2.爬虫 urlib库讲解 异常处理、URL解析、分析Robots协议
1.异常处理 URLError类来自urllib库的error模块,它继承自OSError类,是error异常模块的基类,由request模块产生的异常都可以通过这个类来处理. from urllib ...
- 芝麻HTTP:分析Robots协议
利用urllib的robotparser模块,我们可以实现网站Robots协议的分析.本节中,我们来简单了解一下该模块的用法. 1. Robots协议 Robots协议也称作爬虫协议.机器人协议,它的 ...
- urllib库:分析Robots协议
1from urllib.robotparser import RobotFileParser 2import ssl 3from urllib.request import urlopen 4ssl ...
- Robots协议(爬虫协议、机器人协议)
Robots协议(也称为爬虫协议.机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓 ...
- [Python3网络爬虫开发实战] 3.1.4-分析Robots协议
利用urllib的robotparser模块,我们可以实现网站Robots协议的分析.本节中,我们来简单了解一下该模块的用法. 1. Robots协议 Robots协议也称作爬虫协议.机器人协议,它的 ...
- python3 爬虫5--分析Robots协议
1Robots协议 Robots协议告诉了搜索引擎和爬虫那些页面可以抓取,那些不可以,通常是存放在robots.txt文件里面,位于网站的根目录下 robots.txt中内容的示范: User-age ...
- Robots协议(摘)
robots协议 Robots协议(也称为爬虫协议.机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓 ...
- 网络爬虫 robots协议 robots.txt
网络爬虫 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上 ...
- wireshark 抓包分析 TCPIP协议的握手
wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...
随机推荐
- Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件出错的解决方案
Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件,运行页面,会出现如下的错误: 错误原因 VisualStudio 2012(或2013) WebFo ...
- windows下QJson的编译和安装
本文是编译安装Qjson过程中遇到的问题解决过程.主要参照网上资料和自己试验得到. 关于Qjson的用处参照:Qt 学习之路 2(63):使用 QJson 处理 JSON Qjson clone地址: ...
- thinkphp 伪静态 自定义后缀
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.we ...
- 关于Unity中的3D拾取
3D拾取 3D游戏实际上看到的是2D画面,我们在屏幕上点击,想要找到哪个3D物体,我们实际上是在一个2维平面内做3D拾取. 3D拾取实际上是,当玩家点击屏幕的时候,会从显示屏幕的摄像头发射一条射线,射 ...
- python opencv 学习笔记
图片缩放 image=cv2.imread('test.jpg') res=cv2.resize(image,(32,32),interpolation=cv2.INTER_CUBIC) cv2. ...
- (原创)Linux下的floating point exception错误解析
很多人也许都碰到过这样的错误:linux下程序刚一运行就报错:Floating point exception. 其实这个问题很容易排查,绝大多数情况情况都是逻辑的问题,如:c = a/b;或 c = ...
- 让你的MyEclipse像Visual Studio 2008一样拥有强大功能智能感知功能
Windows→Preferences→Java→Editor→Content Assist 我们看到其中的AutoActivation Delay默认值为200(单位是毫秒)也就是说在打“.”之后停 ...
- PD 15.1 安装 破解 , 简单使用 (一对多,多对多关系生成sql脚本) , CDM 和 PDM 的区别;PD15.1 生成sql2008 无FK外键约束的解决方法
CDM是概念模型,在概念模型上没有具体数据库产品的概念,反映的是实体和联系.PDM是物理模型,是依赖具体数据库产品的模型,比如可以指定具体的数据类型和约束等等.在PowerDesigner中两个模型之 ...
- POI导出Word插入复选框
POI功能比较强大,但是有些不常用功能比如插入特殊符号,不知道API怎么调用 Word里要插入复选框,首先想到的是POI有没有提供现成的API,搜了一番,貌似都说不直接支持 http://stacko ...
- pyhont备份php代码脚本
#!/usr/bin/env python # encoding: utf-8 import time import os import sys import logging #create logg ...