博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识
阅读量:5251 次
发布时间:2019-06-14

本文共 1898 字,大约阅读时间需要 6 分钟。

网站站点的背景调研

1. 检查 robots.txt

网站都会定义robots.txt 文件,这个文件就是给 网络爬虫 来了解爬取该网站时存在哪些限制。当然了,这个限制仅仅只是一个建议,你可以遵守,也可以不遵守。但对于一个良好的网民来说,最好还是遵守robots.txt 文件里面的限制。

Q: 如何查看这个 robots.txt 文件?

A: 你只需要在 目标网站站点域名 后面加上 robots.txt 即可。
举例:目标网站站点域名: 。目标网站站点的robots.txt 文件: 。

# section 1User-agent: BadCrawlerDisallow: /# section 2User-agent: *Crawl-delay: 5Disallow: /trap# section 3Sitemap: http://aobojaing.github.io/sitemap.xml

Q: robots.txt 文件里面的东西都是什么意思,又有什么用?

A: 一个部分一个部分的讲解:

section 1:

这部分的意思就是:robots.txt 文件禁止那些代理为 BadCrawler 的爬虫访问该网站。 BadCrawler 中文翻译为:恶意爬网程序。

其实这一部分纯粹没用。因为一个恶意爬虫是根本不会代理成:BadCrawler 来访问网站的。你想啊,一个小偷,他会在偷别人东西之前告诉对方,“我是小偷,我要偷你东西了,你做好准备哦!” ?
我们还是尽量遵守robots.txt 文件里面的要求为好。这套专栏后面的博客中,将会展示如何让爬虫自动遵守 robots.txt 文件的要求。

section 2:

不管什么用户,两次爬取请求之间的间隔时间不可以小于 5秒钟。否则你访问的这个网站会将网页自动跳整到 /trap 链接。

这里写图片描述

就是说:网站服务器封禁了你的IP。我这个网站是封禁你1分钟的时间。一个真实的网站可能会对你的IP封禁更长的时间,如果你行为恶劣,甚至是永久封禁!

section 3:

定义了一个 Sitemap 文件,这个文件就是所谓的 网站地图。我们马上就来介绍这个文件。

2. 检查 网站地图

下面的截图是在 robots.txt 文件中发现的 Sitemap 文件的内容:

这里写图片描述

网站提供的 Sitemap 文件(即 网站地图),它提供了网站站点里面所有页面的链接。它们组成了这个 Sitemap 文件,现在你应该清楚:为什么叫这个文件为网站地图了吧。

我们无须爬取某个网站站点里面的每一个网页。网站提供的 Sitemap 文件 帮助了我们的网络爬虫定为网站最新的内容。

这里写图片描述

虽然 Sitemap 文件提供了一种爬取网站的有效方式,但是我们仍需要对其谨慎处理,因为该文件经常存在缺失、过期或者不完整的问题。

3. 估算 网站大小

Q: 为什么要估算 网站大小?

A: 目标网站的大小指的是,这个站点里面有多少个网页。有多少的网页,会影响到我们如何进行爬取。爬取网站上的信息的方式有两种:串行爬取 和 分布式爬取。如果目标网站的网页数量不是很多,只有几百个网页,使用串行爬取就可以。但是如果一个目标网站的网页有几百万个,我们使用串行爬取的话,可能要持续数月才能完成,这个时候,我们就需要分布式爬取的策略来解决这个问题。

所以,在爬取目标网站之前,估算 网站大小 是很有必要的。


Q: 如何估算 网站大小?

A: 估算网站大小的一个简便方法是:检查Google爬虫的爬取结果。

举例:目标网站:http://blog.csdn.net/github_35160620,现在我们要估算这个网站的大小。做法:在google搜索栏里面输入:site:http://blog.csdn.net/github_35160620 ,就可以了。

这里写图片描述

Google的爬虫估算该网站拥有98个网页,这个数字和事情情况差不多。(实际上,这个http://blog.csdn.net/github_35160620网站里面有101格网页。)

这里写图片描述

  1. 我们通过 Google搜索的site关键词过滤域名结果,从而获取估计的网站大小的信息。
  2. 这个例子估算的结果还算正确。不过对于更大型的网站,我们会发现 Google 的估算并十分准确。

Q: 上不了 Google 网站,怎么办?

A: 告诉你一个方法:,网速也是相当的快:虫部落

4. 识别 网站所用技术

编写中…

5. 寻找 网站所有者

编写中…

转载于:https://www.cnblogs.com/aobosir/p/5928576.html

你可能感兴趣的文章
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
CF E2 - Array and Segments (Hard version) (线段树)
查看>>
Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化
查看>>
SIGPIPE并产生一个信号处理
查看>>
CentOS
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
爬虫-通用代码框架
查看>>
2019春 软件工程实践 助教总结
查看>>
YUV 格式的视频呈现
查看>>
Android弹出框的学习
查看>>
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
Learning-Python【26】:反射及内置方法
查看>>
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>