《Python爬蟲開發與專案實戰》總結 第二章

cow99990發表於2017-09-26

大綱:

概念:


SGML: Standard Generalized Markup language,是一種定義電子文件結構和描述其內容的國際標準語言。

HTML: HyperText Markup Language,它通過標記符號來標記要顯示的網頁中的各個部分。

超文字:就是指頁面內可以包含圖片、連結,甚至音樂、程式等非文字元素。

XHTML: EXtensible HyperText Markup Language,是一種置標語言,表現方式與超文字標記語言(HTML)類似,不過語法上更加嚴格。

XML: Extensible Markup Language, 是一種用於標記電子檔案使其具有結構性的標記語言。

W3C標準:World WideWeb Consortium,有效促進了Web技術的互相相容,對網際網路技術的發展和應用起到了基礎性和根本性的支撐作用, 網頁主要由三部分組成:結構(Structure)、表現(Presentation)和行為(Behavior)。

HTTP協議:超文字傳輸協議(HTTP,HyperTextTransfer Protocol)是網際網路上應用最為廣泛的一種網路協議。提供一種釋出和接收HTML頁面的方法,

結構標準(Structure):文件排版結構。
表現標準(Presentation):外觀標準,顏色,字型……

行為標準(Behavior):給予web設計師和開發者一個標準的方法,讓他們來訪問他們站點中的資料、指令碼和表現層物件。

CSS:層疊樣式表(英文全稱:CascadingStyle Sheets)是一種用來表現HTML(標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等檔案樣式的計算機語言。CSS不僅可以靜態地修飾網頁,還可以配合各種指令碼語言動態地對網頁各元素進行格式化。

Xpath:XPath即為XML路徑語言,它是一種用來確定XML(標準通用標記語言的子集)文件中某部分位置的語言。

JSON: JSON(JavaScript Object Notation, JS 物件標記) 是一種輕量級的資料交換格式。

JavaScript:JavaScript一種直譯式指令碼語言,是一種動態型別、弱型別、基於原型的語言,內建支援型別。

方法:

1.1HTML的基本結構

<html>內容</html>

HTML文件是由<html></html>包裹

<head>內容</head>

HTML檔案頭標記

<title>內容</title>

HTML檔案標題標記

<body>內容</body>

是網頁的主題

<meta>內容</meta>

頁面的元資訊

元資訊:比如針對收索引擎更新頻度的描述和關鍵詞。

1.2文件設定標記

文件設定標記分為格式標記和文字標記。

格式標記

<br>

強制換行標記

<p>

換段落標記

<center>

居中對齊標記

<pre>

預格式化標記

<li>

列表專案標記

<ul>

無序列表標記

<ol>

有序列表標記

<dl><dt><dd>

定義型列表

<hr>

水平分割線標記

<div>

分割槽顯示標記

文字標記

<hn>

標題標記

<font>

字型設定標記

<b>

粗字型標記

<i>

斜字型標記

<sub>

文字下標字型標記

<sup>

文字上標字型標記

<tt>

印表機字型標記

<cite>

引用方式的字型,通常是斜體

<em>

表示強調,通常顯示為斜體

<strong>

表示強調,通常顯示為粗體字

<small>

小型字型標記

<big>

大型字型標記

<u>

下劃線字型標記

1.3影像標記

<img>稱為影像標記,用來在網頁幀顯示影像。

<img src=“路徑” width=“路徑” height=“路徑”>

src

屬性用來指定我們要載入的圖片的路徑、圖片名稱和格式

width

屬性用來指定圖片的寬度,單位為px、em、cm、mm

height

屬性用來指定圖片的高度,單位為px、em、cm、mm

border

屬性用來指定圖片的邊框寬度,單位為px、em、em、mm

alt

三個作用:

1.       對滑鼠顯示,圖片的屬性文字。

2.       影像沒有下載或者載入失敗,用文字來代替影像顯示。

3.       收索引擎可以通過這個屬性的文字來抓取圖片。

1.4超連結的使用

<a>用來標記超連結。

<a href=”連結地址” target=”開啟方式“ name=”頁面描點名稱“>

href

屬性值是連結地址,連結地址是一個網頁、視訊、圖片

Target

屬性用來定義超連結的開啟方式

Name

屬性用來指定頁面的描點名稱

1.5表格

<table>

width

表示表格的寬度

height

表示表格的高度

border

表示表格外邊框的寬度

align

表示表格的顯示位置

cellspacing

單元格之間的間距

cellpadding

單元格內容與單元格邊框的顯示距離,單位為畫素

frame

控制表格邊框最外層的四條線框

rules

控制是否顯示以及如何顯示單元格之間的分割線

<caption>

 

Top:表示標題放在表格上部

Botton:表示標題放在表格下部

Left:表示標題放在表格的左部

Right:表示標題放在表格的右部

<tr>

Bgcolor

設定背景顏色

align

設定垂直方向對齊方式

valign

設定水平方向對齊方式

<td><th>

bgcolor

設定單元格背景

align

設定單元格對齊方式

valign

設定單元格垂直對齊方式

width

設定單元格寬度

height

設定單元格高度

rowspan

設定單元格所佔行數

colspan

設定單元格所佔列數

2.CSS

用來定義如何顯示HTML元素,一般和HTNL配合使用。

內聯樣式表

CSS直接寫在HTML標記中,直接使用style屬性改變樣式

嵌入式樣式表

CSS樣式程式碼寫在<style type=”text/css”></style>標記之間,一般下嵌入式CSS樣式寫在<head></head>之間

外部樣式表

CSS寫一個單獨的外部檔案中,在<head>中使用<link>標記將CSS樣式檔案連結到HTML檔案中

CSS規則通常由選擇器和一條或多條宣告組成,選擇器通常是需要改變的HTML元素,屬性是希望設定的樣式屬性。

選擇器定義:

HTML標記定義

 

ID選擇器定義

ID選擇器可以為標有特定ID的HTML元素指定特定的樣式

Class選擇器定義

Class選擇器用於描述一組元素的樣式,class選擇器有別於ID選擇器,它可以在多個元素中使用

2.1顏色屬性

顏色名稱

Color:green

十六進位制

Color:#ff6600

簡寫方式

Color:#f60

RGB方式

rgb(255,255,255)

RGBA方式

Color:rgba(255,255,255,1)

2.2字型屬性

Font-size

定義字型大小

Font-family

定義字型

Font-weight

定義字型加粗

2.3背景屬性

Background-color

用來定義背景的顏色

Background-image

用來定義背景圖片

Background-repeat

用來定義背景重複方式

Background-position

用來定義背景位置

Background簡寫

背景顏色url重複位置

2.4文字屬性

Text-align

設定文字對齊方式,屬性值可以取left、center、right

Line-height

設定文字行高,屬性值可以取具體數值,來設定固定的行高值

Text-indent

代表首行縮排

Letter-spacing

用來設定字元間距

2.5列表

List-style-type

指明列表項標記的型別

None

無標記

Disc

預設,標記是實心圓

Circle

標記是空心圓

Square

標記是實心方塊

Decimal

標記是數字

Decimal-leading-zero

0開頭的數字標記

Lower-roman

小寫的羅馬數字i,ii,iii,iv,v

Upper-alpha

大寫的英文字母

List-style-position

用來指明列表項中標記的位置

List-style-image

用來設定影像列表標記

3.javascript

直接插入程式碼

在<script></script>標記中編寫程式碼

外部引用js檔案

把程式碼放到單獨的.js檔案中,然後通過<script src=‘目標檔案的URL’></script>方式來引入js檔案

3.1JavaScript基本語法

1)忽略空格

2)語句以;結束

3)使用{……}形成一個塊block,可以巢狀形成層級

4)註釋分為單行註釋和多行註釋

3.2資料型別和變數

Number型別

不區分整數和浮點,統一使用Number表示

字串型別

以單引號或雙引號括起來的任意文字

布林值型別

一個布林值只有true、false

陣列型別

陣列是一組按順序排列的集合,集合的每個值稱為元素

物件型別

是一組由健值組成的無序集合

3.3運算子合操作符

類別

操作符

示例

算術操作符

+、-、*、/、%

 

字串操作符

+(字串連線)、+=(字串連線複合)

 

布林操作符

!、&&、||

 

一元操作符

++、--、+(一元加)、-(一元減)

 

關係比較操作符

<、<=、>、>=、!=、==、===、!=

 

按位操作符

~(按位非)、&(按位與)、|(按位或)、^(按位異或)、<<(有符號左移)、>>(有符號左移)

 

賦值操作符

=、複合賦值(+=、-=、*=、%=)

複合按位賦值(~=、&=、|=、^=、<<=、>>=、>>>=)

 

 

物件操作符

.(屬性訪問)、[](屬性或陣列訪問)、NEW(呼叫建構函式建立物件)、Delete(變數屬性刪除)、void(返回undefined)、In(判斷屬性)、instanceof(原型判斷)

 

其他操作符

?:(條件操作符)、,(逗號操作符)、()(分組操作)、typeof(型別操作符)

 

3.4條件判斷

If(){……}else{……}

3.5迴圈

For迴圈、一種是while迴圈

3.6函式

關鍵字function

4.1Xpath節點

七種型別的結點:元素、屬性、文字、名稱空間、處理指令、註釋、文件節點。樹的根被稱為文件節點或根節點。

節點關係:父(parent)、子(children)、同胞(sibling)、先輩(ancestor)、後代(descendant)

4.2Xpath語法

節點是沿著路徑(path)或者(steps)來選取的。

表示式

描述

Nodename

選取此節點的所有子節點

/

從根節點選取

//

選擇任意位置的某個節點

.

選取當前節點

..

選取當前節點的父節點

@

選取屬性

節點選取示例

實現效果

路徑表示式

選取classroom元素的所有子節點

Classroom

選取根元素classroom

/classroom

選取屬於classroom的子元素的所有student元素

Classroom/student

選取所有student子元素,而不管他們在文件中的位置

//student

選擇屬於classroom元素的後代的所有student元素,而不管它們位於classroom之下的什麼位置

Classroom//student

選取名為lang的所有屬性

//@lang

萬用字元“*”與“1”操作符

選取classroom元素的所有子元素

/classroom/*

選取文件中的所有元素

//*

選取所有帶有屬性的name元素

//name[@*]

選取student元素的所有name和age元素

//student/name|//student/age

選取屬於classroom元素的student元素的所有name元素,以及文件所有age元素

/classroom/student/name | //age

4.3Xpath軸

軸名稱

含義

child

選取當前節點的所有子節點

parent

選取當前節點的父節點

ancestor

選取當前節點的所有先輩(父、祖父)

ancestor-or-self

選取當前節點的所有先輩以及當前節點本身

descendant

選取當前節點的所有後代元素

Descendant-or-self

選取當前節點的所有後代元素及當前節點本身

Preceding

選取文件中當前節點的開始標記之前的所有節點

following

選取文件中當前節點的結束標記之後的所有節點

Preceding-sibling

選取當前節點之前的所有同級節點

Following-sibling

選取當前節點之後的所有同級節點

self

選取當前節點

attribute

選取當前節點的所有屬性

namespace

選取當前節點的所有名稱空間節點

4.4運算子

運算子

描述

例項

含義

|

計算兩個節點集

/student/name|//student/age

選取所有student元素的所有name和age元素

+

加法

/classroom/student[age=19+1]

選取classroom元素的所有student元素,且其中的age元素的值須等於20

-

減法

/classroom/student[age=21-1]

同上

*

乘法

/classroom/student[age=4*5]

同上

div

除法

/classroom/student[age=40 div 2]

同上

=

等於

/classroom/student[age=20]

同上

!=

不等於

/classroom/student[age!=20]

..

小於

/classroom/student[age<20]

..

<=

小於等於

/classroom/student[age<=20]

..

大於

/classroom/student[age>20]

..

>=

大於等於

/classroom/student[age>=20]

..

or

/classroom/student[age<20 or age>25]

..

and

/classroom/student[age>20 or age<25]

..

mod

計算除法的餘數

5 mode 2

1

5.1JSON

JSON名稱/值對

名稱/值對

JSON值

數字、字串……

JSON物件

..

JSON陣列

..

 

相關文章