阅读 77

Task1、了解网络爬虫开始,重新认识爬虫

1.1、什么是爬虫

1.1.1、网络爬虫与浏览器区别

传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。

另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;

所以具体的区别如下:浏览器是展示数据的, 而网络爬虫是采集数据的

1.1.2、网络爬虫的定义与作用

网络爬虫的定义

网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端发送网络请求,获取响应数据,一种按照一定的规则,自动地抓取万维网信息的程序或脚本

网络爬虫的作用

从万维网上获取, 我们需要的信息

1.1.3、网页的组成

首先,我们来了解网页的基本组成,网页可以分为三大部分:HTML、CSS 和 JavaScript。

如果把网页比作一个人的话,HTML相当于骨架,JavaScript 相当于肌肉,CSS 相当于皮肤,三者结合起来才能形成一个完整的网页。

HTML

HTML是用来描述网页的一种语言,其全称叫作 Hyper Text Markup Language,即超文本标记语言。

我们浏览的网页包括文字、按钮、图片和视频等各种复杂的元素,其基础架构就是 HTML。不同类型的元素通过不同类型的标签来表示,如图片用 img标签表示,视频用 video 标签表示,段落用 p 标签表示,它 们之间的布局又常通过布局标签 div嵌套组合而成,各种标签通过不同的排列和嵌套就可以形成网页的框架。

我们在 Chrome 浏览器中打开百度,右击并选择 “检查”项(或按 F12 键),打开开发者模式,这时在 Elements 选项卡中即可看到网页的源代码,如图所示。

HTML教程主要可参考: www.runoob.com/html/html-t…(建议用Chrome 浏览器做开发)

CSS

虽然 HTML定义了网页的结构,但是只有 HTML页面的布局并不美观,可能只是简单的节点元素的排列,为了让网页看起来更好看一些,这里就需要借助 CSS 了。

CSS,全称叫作 Cascading Style Sheets,即层叠样式表。“层叠”是指当在 HTML中引用了数个样式文件,并且样式发生冲突时,浏览器能依据层叠顺序处理。“样式”指网页中文字大小、颜色、元素间距、排列等 格式。

CSS 是目前唯一的网页页面排版样式标准,有了它的帮助,页面才会变得更为美观。

CSS 主要教程可以参考:www.runoob.com/css/css-tut…

JavaScript

JavaScript,简称 JS,是一种脚本语言。HTML和 CSS 配合使用,提供给用户的只是一种静态信息,缺乏交互性。

我们在网页里可能会看到一些交互和动画效果,如下载进度条、提示框、轮播图等,这通常就是 JavaScript 的功劳。

它的出现使得用户与信息之间不只是一种浏览与显示的关系,而是实现了一种实时、动态、交互的页面功能。 JavaScript 通常也是以单独的文件形式加载的,后缀为 js,在 HTML中通过 script 标签即可引入,例如:  综上所述,HTML定义了网页的内容和结构,CSS 描述了网页的布局,JavaScript 定义了网页的行为。

JavaScript 主要参考教程可以参考:www.runoob.com/js/js-tutor…

1.1.4、Robots协议

Robots协议基础

Robots协议,即Robots Exclusion Standard 网络爬虫排除协议。

作用:网站告知网络爬虫哪些页面可以爬取,哪些不能爬取

形式:在网站根目录下的robots.txt文件

例:京东的Robots协议www.jd.com/robots.txt

可以看到京东对爬虫的限制:

对于任何的网络爬虫来源,遵守如下协议

User-agent: * Disallow: /?* Disallow: /pop/.html Disallow: /pinpai/.html?*

以下四个网络爬虫不允许爬取任何资源

User-agent: EtaoSpider Disallow: / User-agent: HuihuiSpider Disallow: / User-agent: GwdangSpider Disallow: / User-agent: WochachaSpider Disallow: /

基本协议语法:

注释
  • 代表所有

./代表根目录 User-agent: * # 代表的是那些爬虫 Disallow: / # 代表不允许爬虫访问的目录

其他网站的一些Robots协议(但并不是所有网站都有robots协议):

百度:www.baidu.com/robots.txt新浪新闻:news.sina.com.cn/robots.txt腾讯:www.qq.com/robots.txt腾讯新闻:news.qq.com/robots.txt国家教育部:www.meo.edu.cn/robots.txt (注:无robots协议)

Robots协议的遵守方式

(1) Robots协议的使用

网络爬虫:自动或人工识别robots.txt,再进行内容爬取

约束性:Robots协议是建议但并非约束性,网络爬虫可以不遵守,但存在法律风险。

(2) Robots协议的理解

爬取网页,玩转网页

访问量很小:可以遵守

访问量很大:建议遵守

爬取网站,爬取系列网站

非商业且偶尔,建议遵守

商业利益:必须遵守

爬取全网

必须遵守

1.2、Python网络爬虫需要学习的知识和解决的问题

1、一定要有Python的基础 2、了解基本的网页结构 3、使用好工具,如谷歌浏览器的调试 4、遇到bug和难点善于自主寻找解决方案


作者:Livingbody
链接:https://juejin.cn/post/7022215478034563102


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐