1.24 初识网络爬虫

小知识

HTTP

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
HTTP是基于客户/服务器模式,且面向连接的。典型的HTTP事务处理有如下的过程:
(1)客户与服务器建立连接;
(2)客户向服务器提出请求;
(3)服务器接受请求,并根据请求返回相应的文件作为应答;
(4)客户与服务器关闭连接。

TCP

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
TCP是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。

WEB

web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
表现形式:

  1. 一、超文本(Hyper text)
    超文本是一种用户接口方式,用以显示文本及与文本相关的内容。现时超文本普遍以电子文档的方式存在,其中的文字包含有可以链接到其他字段或者文档的超文本链接,允许从当前阅读位置直接切换到超文本链接所指向的文字。
  2. 二、超媒体(hypermedia)
    超媒体是超级媒体的简称。是超文本(hypertext)和多媒体在信息浏览环境下的结合。用户不仅能从一个文本跳到另一个文本,而且可以激活一段声音,显示一个图形,甚至可以播放一段动画。
  3. 三、超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
    特点

网站 website

所谓网站(Website),就是指在因特网上,根据一定的规则,使用HTML等工具制作的用于展示特定内容的相关网页的集合。简单地说,网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布或收集信息。
网页:
是网站中的一个页面,通常是网页构成网站的基本元素,是承载各种网站应用的平台。通俗的说,网站就是由网页组成的。
网页的类型:
通常我们看到的网页,都是以 htm 或html后缀结尾的文件,俗称 HTML文件。不同的后缀,分别代表不同类型的网页文件,例如以 CGI 、 ASP 、 PHP 、 JSP 甚至其他更多。

HTML

HTML称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。

超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。

XML

可扩展标记语言(xml)与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,可扩展标记语言仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:可扩展标记语言极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。

XML的简单易于在任何应用程序中读/写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其他的数据交换格式,但不久之后它们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果

CSS

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。

使用Windows系统自带的记事本可以编辑网页。只需要在保存文档时,以.html为后缀名进行保存即可。

大知识

HTML 标签

特点

特点
1.由尖括号包围的关键词,比如 <html>
2.通常是成对出现的,比如 <div></div>
3.标签对中的第一个标签是开始标签,第二个标签是结束标签;
4.开始和结束标签也被称为开放标签和闭合标签。
5.也有单独呈现的标签,如:<img src="百度百科.jpg" />等。
6.一般成对出现的标签,其内容在两个标签中间。单独呈现的
  标签,则在标签属性中赋值。如<h1>标题</h1><input type="text" value="按钮" />。
7.网页的内容需在<html>标签中,标题、字符格式、语言、兼
  容性、关键字、描述等信息显示在<head>标签中,而网页需
  展示的内容需嵌套在<body>标签中。某些时候不按标准书写
  代码虽然可以正常显示,但是作为职业素养,还是应该养成正规编写习惯。
标签
描述
<!--...-->
定义注释。
<!DOCTYPE>
定义文档类型。
<a>
定义锚。
<abbr>
定义缩写。
<acronym>
定义只取首字母的缩写。
<address>
定义文档作者或拥有者的联系信息。
<applet>
不赞成使用。定义嵌入的 applet。
<area>
定义图像映射内部的区域。
<article>
定义文章。
<aside>
定义页面内容之外的内容。
<audio>
定义声音内容。
<b>
定义粗体字。
<base>
定义页面中所有链接的默认地址或默认目标。
<basefont>
不赞成使用。定义页面中文本的默认字体、颜色或尺寸。
<bdi>
定义文本的文本方向,使其脱离其周围文本的方向设置。
<bdo>
定义文字方向。
<big>
定义大号文本。
<blockquote>
定义长的引用。
<body>
定义文档的主体。
<br>
定义简单的折行。
<button>
定义按钮 (push button)。
<canvas>
定义图形。
<caption>
定义表格标题。
<center>
不赞成使用。定义居中文本。
<cite>
定义引用(citation)。
<code>
定义计算机代码文本。
<col>
定义表格中一个或多个列的属性值。
<colgroup>
定义表格中供格式化的列组。
<command>
定义命令按钮。
<datalist>
定义下拉列表。
<dd>
定义定义列表中项目的描述。
<del>
定义被删除文本。
<details>
定义元素的细节。
<dir>
不赞成使用。定义目录列表。
<div>
定义文档中的节。
<dfn>
定义定义项目。
<dialog>
定义对话框或窗口。
<dl>
定义定义列表。
<dt>
定义定义列表中的项目。
<em>
定义强调文本。
<embed>
定义外部交互内容或插件。
<fieldset>
定义围绕表单中元素的边框。
<figcaption>
定义 figure 元素的标题。
<figure>
定义媒介内容的分组,以及它们的标题。
<font>
不赞成使用。定义文字的字体、尺寸和颜色。
<footer>
定义 section 或 page 的页脚。
<form>
定义供用户输入的 HTML 表单。
<frame>
定义框架集的窗口或框架。
<frameset>
定义框架集。
<h1> to <h6>
定义 HTML 标题,可以改变标题的大小。
<head>
定义关于文档的信息。
<header>
定义 section 或 page 的页眉。
<hr>
定义水平线。
<html>
定义 HTML 文档。
<i>
定义斜体字。
<iframe>
定义内联框架。
<img>
定义图像。
<input>
定义输入控件。
<ins>
定义被插入文本。
<isindex>
不赞成使用。定义与文档相关的可搜索索引。
<kbd>
定义键盘文本。
<keygen>
定义生成密钥。
<label>
定义 input 元素的标注。
<legend>
定义 fieldset 元素的标题。
<li>
定义列表的项目。
<link>
定义文档与外部资源的关系。
<map>
定义图像映射。
<mark>
定义有记号的文本。
<menu>
定义菜单列表。
<meta>
定义关于 HTML 文档的元信息。
<meter>
定义预定义范围内的度量。
<nav>
定义导航链接。
<noframes>
定义针对不支持框架的用户的替代内容。
<noscript>
定义针对不支持客户端脚本的用户的替代内容。
<object>
定义内嵌对象。
<ol>
定义有序列表。
<optgroup>
定义选择列表中相关选项的组合。
<option>
定义选择列表中的选项。
<output>
定义输出的一些类型。
<p>
定义段落。
<param>
定义对象的参数。
<pre>
定义预格式文本。
<progress>
定义任何类型的任务的进度。
<q>
定义短的引用。
<rp>
定义若浏览器不支持 ruby 元素显示的内容。
<rt>
定义 ruby 注释的解释。
<ruby>
定义 ruby 注释。
<s>
定义加删除线的文本。
<samp>
定义计算机代码样本。
<script>
定义客户端脚本。
<section>
定义 section。
<select>
定义选择列表(下拉列表)。
<small>
定义小号文本。
<source>
定义媒介源。
<span>
定义文档中的节。
<strike>
不赞成使用。定义加删除线文本。
<strong>
定义强调文本。
<style>
定义文档的样式信息。
<sub>
定义下标文本。
<summary><details> 元素定义可见的标题。
<sup>
定义上标文本。
<table>
定义表格。
<tbody>
定义表格中的主体内容。
<td>
定义表格中的单元。
<textarea>
定义多行的文本输入控件。
<tfoot>
定义表格中的表注内容(脚注)。
<th>
定义表格中的表头单元格。
<thead>
定义表格中的表头内容。
<time>
定义日期/时间。
<title>
定义文档的标题。
<tr>
定义表格中的行。
<track>
定义用在媒体播放器中的文本轨道。
<tt>
定义打字机文本。
<u>
定义下划线文本。
<ul>
定义无序列表。
<var>
定义文本的变量部分。
<video>
定义视频。
<wbr>
定义视频。
<xmp>
定义预格式文本。

by百度百科

知识点

Urllib 库
它是 Python 内置的 HTTP 请求库,也不需要额外安装即可使用,包含四个模块:

  1. request,它是最基本的 HTTP 请求模块,我们可以用它来模拟发送一请求,只需要给库方法传入 URL 还有额外的参数,就可以模拟实现这个过程了。
  2. error 模块即异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后进行重试或其他操作保证程序不会意外终止。
  3. parse 模块是一个工具模块,提供了许多 URL 处理方法,比如拆分、解析、合并等等的方法。
  4. robotparser,主要是用来识别网站的 robots.txt 文件,然后判断哪些网站可以爬,哪些网站不可以爬的

try 程序异常处理

try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。

  1. 如果当try后的语句执行时发生异常,跳回到try并执行第一个匹配该异常的except子句
  2. 如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层,结束程序,并打印 出错信息
  3. 如果在try子句执行时没有发生异常, 执行else语句后的语句
try:
    <语句> #运行别的代码
except <名字><语句> #如果在try部份引发了'name'异常
except <名字><数据>:
    <语句> #如果引发了'name'异常,获得附加的数据
else:
    <语句> #如果没有异常发生

猜你喜欢

转载自blog.csdn.net/qq_27528193/article/details/113090945