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