1 robots协议

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

如:

淘宝网:https://www.taobao.com/robots.txt

User-agent:  Baiduspider
Allow:  /article
Allow:  /oshtml
Disallow:  /product/
Disallow:  /

User-Agent:  Googlebot
Allow:  /article
Allow:  /oshtml
Allow:  /product
Allow:  /spu
Allow:  /dianpu
Allow:  /oversea
Allow:  /list
Disallow:  /...

腾讯网:http://www.qq.com/robots.txt

User-agent: *
Disallow:
Sitemap: http://www.qq.com/sitemap_index.xml

豆瓣网:https://www.douban.com/robots.txt

马蜂窝:http://www.mafengwo.cn/robots.txt

搜索引擎和DNS解析服务商(DNSPod)合作,新网站域名将被迅速抓取。但搜索引擎蜘蛛的爬行是被输入了一定的规则的,它需要遵从一些命令或文件内容,如标注为nofollow的链接,或者是Robots协议;另一种则是通过网站的站长主动对搜索引擎提交的网址,搜索引擎则会在接下来派出“蜘蛛”,对该网站进行爬取。

2 网站地图sitemap

网站地图sitemap是网站所有链接的容器;是依据网站的结构、框架、内容生长的导航页面文件,一般存放在根目录下并命名为sitemap。

很多网站的链接层次较深,蜘蛛很难抓取到,网站地图可方便搜索引擎蜘蛛抓取网站页面,增加网站重要内容页面的收录,以便清晰了解网站的架构

网站地图sitemap有两种形式

2.1 HTML

HTML版本的网站地图,也即网站上所有页面的链接,但对于规模较大的网站来说,一种办法是网站地图只列出网站最主要的链接,如一级分类、二级分类;第二种办法是将网站地图分成几个文件,主网站地图列出次级网站的链接,次级网站列出部分页面链接

2.2 XML

XML版本网站地图是由Google首先提出的,其是由XML标签组成的,文件本身必须是utf-8编码,网站地图文件实际上就是列出网站需要被收录页面的URL,最简单的网站地图可以是一个纯文本,文件只要列出页面的URL,一行列一个URL,搜索引擎就能抓取并理解文件内容

也可以使用第三方工具生成某网站的sitemap ,例如小爬虫sitemap网站地图生成工具

3 估算网站的大小

可以使用搜索引擎来估算网站大小,如搜索时添加site。

该方法仅是通过百度搜索引擎大致估算网站大小,因有些网站对爬虫的限制,以及搜索引擎本身爬取数据技术的局限性,所以该数据仅是估算值,是估算网站体量量级的经验值。

注:百度只能做一级页面的统计,Google可以做到二级页面的统计

4 识别网站中用了何种技术

为了更好地了解网站,抓取该网站的信息,我们可先了解一下该网站大致所使用的技术架构

builtwith

安装:(windows)pip install bulitwith;   (Linux)sudo pip install builtith

使用:在python交互环境下,输入:

import builtwith

builtwith.parse("http://www.sina.com.cn")

5 确定网站的所有着

有时候需要追寻网站的所有者是谁,可以通过python-whois软件查看

whois

安装:(windows)pip install python-whois

使用:在python交互环境下输入:

import whois

whois.whois("http://www.sina.com.cn")

												

pythonl学习笔记——爬虫的基本常识的更多相关文章

  1. pythonl练习笔记——爬虫的初级、中级、高级所匹配的知识

    1 初级爬虫 (1)Web前端的知识:HTML, CSS, JavaScript, DOM, DHTML, Ajax, jQuery,json等: (2)正则表达式,能提取正常一般网页中想要的信息,比 ...

  2. Scrapy爬虫学习笔记 - 爬虫基础知识

    一.正则表达式 二.深度和广度优先                                三.爬虫去重策略

  3. JS学习笔记1_基础与常识

    1.六种数据类型 5种基础的:Undefined,Null,Boolean,Number,String(其中Undefined派生自Null) 1种复杂的:Object(本质是一组无序键值对) 2.字 ...

  4. python学习笔记——爬虫学习中的重要库urllib

    1 urllib概述 1.1 urllib库中的模块类型 urllib是python内置的http请求库 其提供了如下功能: (1)error 异常处理模块 (2)parse url解析模块 (3)r ...

  5. python学习笔记——爬虫中提取网页中的信息

    1 数据类型 网页中的数据类型可分为结构化数据.半结构化数据.非结构化数据三种 1.1 结构化数据 常见的是MySQL,表现为二维形式的数据 1.2 半结构化数据 是结构化数据的一种形式,并不符合关系 ...

  6. python学习笔记——爬虫的抓取策略

    1 深度优先算法 2 广度/宽度优先策略 3 完全二叉树遍历结果 深度优先遍历的结果:[1, 3, 5, 7, 9, 4, 12, 11, 2, 6, 14, 13, 8, 10] 广度优先遍历的结果 ...

  7. JavaScript学习笔记1_基础与常识

    1.六种数据类型 5种基础的:Undefined,Null,Boolean,Number,String(其中Undefined派生自Null) 1种复杂的:Object(本质是一组无序键值对) 2.字 ...

  8. python库学习笔记——爬虫常用的BeautifulSoup的介绍

    1. 开启Beautiful Soup 之旅 在这里先分享官方文档链接,不过内容是有些多,也不够条理,在此本文章做一下整理方便大家参考. 官方文档 2. 创建 Beautiful Soup 对象 首先 ...

  9. 《Unix&Linux大学教程》学习笔记三:Shell常识

    1:全局变量与局部变量 全局:可以从父进程传递给子进程的变量,如:环境变量. 局部:只能在特定的子Shell中使用的变量. 局部变量变全局:使用 “export 局部” 指令将创建的局部变量导出到环境 ...

随机推荐

  1. 第六章 memcached剖析

    注:本篇博客参考于两本书. <memcached全面剖析>,该书籍市面上应该没有,我传到了百度云盘,链接如下:http://pan.baidu.com/s/1qX00Lti <大型网 ...

  2. Search in Rotated Sorted Array II leetcode java

    题目: Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would ...

  3. Bootstrap学习js插件篇之下拉菜单

    案例 通过此插件可以为几乎所有东西添加下拉菜单,包括导航条.标签页.胶囊式按钮. 用于导航条 导航条分为四个部分.第一部分导航头,第二部分导航列,第三部分form查询表单,第四部分导航列. <n ...

  4. IOS调试—断点调试以及动态输出

    在开发App的过程中,需要反复的修改和优化我们的代码,特别是当程序出现bug,需要快速的找出错误的原因,进行修改,以保证程序的正确执行. 断点调试,是最常用最简单的一种调试方式,可以一步步跟踪程序执行 ...

  5. 【小程序】wxs使用

    wxs使用 WXS(WeiXin Script)是小程序的一套脚本语言,结合WXML,可以构建出页面的结构. wxs可以说就是为了满足能在页面中使用js存在的,在wxml页面中,只能在插值{{ }}中 ...

  6. C++ vector用法(转)

    在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<in ...

  7. [Node.js] Child Process with fork() to handle heavy calculation process

    When build server, if we have a API endpoint requires some heavy calculation process, it will block ...

  8. 用L脚本语言实现&quot;L脚本语言控制台&quot;

    下载Windows平台解释引擎 L脚本语言中能够将随意字符串当做一行L脚本语言程序来运行.通过循环接收用户输入,就是一个控制台IDE了 #scp #scp没有控制台IDE?我们自己用scp来实现一个 ...

  9. 【android】模拟点击某个指定坐标作用在View上

    /** * 模拟点击某个指定坐标作用在View上 * @param view * @param x * @param y */ public void clickView(View view,floa ...

  10. 绕过Web授权和认证之篡改HTTP请求

    一.什么是HTTP请求 超文本传输协议(HTTP)提供了多种请求方法来与web服务器沟通.当然,大多数方法的初衷是帮助开发者在开发或调试过程中部署和测试HTTP应用.如果服务器配置不当,这些请求方法可 ...