1. 程式人生 > >我的python爬蟲自學之路

我的python爬蟲自學之路

昨天開始裝裝外掛,找找部落格,看看知乎,開始我的python的自學之路。慚愧,我算是一個只有三分鐘熱度的人,挖個坑督促一下自己。希望能堅持把坑填上。

先來盤點一下昨天完成的事,以及接下來的計劃。

看完兩篇知乎文章並實現和理解了其中的簡單例項

簡單整理了一下筆記

網頁爬蟲的整個思路方法:

爬取整個網頁=獲取網頁的原始碼

爬取下來的網頁再通過文字解析提取,找到需要的資訊,可以是圖片或者文字

#入門一個HTTP客戶端庫:Requests,用來請求網址,得到一些響應內容

#lxml庫和XPath(XML文件中查詢資訊的語言)語法來完成資訊的提取

###XPath節點

節點(Node):在 XPath 中,有七種型別的節點:元素、屬性、文字、名稱空間、處理指令、註釋以及文件(根)節點

基本值(原子值,Atomic value):無父或無子的節點

專案(Item):基本值或節點

###XPath語法

選取節點:其採用路徑表示式選取XML文件中的節點或節點集。節點是通過沿著路徑(path)或者步(steps)選取的

表示式

描述

路徑表示式

結果

nodename

選取此節點的所有子節點

bookstore

選取bookstore元素的所有子節點

/

從根節點選取

/bookstore

選取根元素bookstore

//

從匹配選擇的當前節點選擇文件中的節點,而不考慮他們的位置

bookstore/book

選取屬於bookstore的子元素的所有book元素

.

選取當前節點

//book

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

..

選取當前節點的父節點

bookstore//book

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

@

選擇屬性

//@lang

選取名為 lang 的所有屬性

謂語(Predicates)被嵌在方括號中用來查詢某個特定的節點或者包含某個指定的值的節點

選取未知節點:*匹配任何元素節點; @*匹配任何屬性節點; node()匹配任何型別的節點

選取若干路徑:通過在路徑表示式中使用“|”運算子,可以選取若干個路徑

###XPath Axes(軸)

軸定義相對於當前節點的節點集

ancestor\ancestor-or-self\attribute\child\descendant(後代)\descendant-or-self\

following\namespace\parent\precending\precending-sibling\self

位置路徑表示式:絕對路徑起始於/,相對路徑不會

(step):軸名稱::節點測試[謂語]

child::*

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

child::node()

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

child::*/child::price

選取當前節點的所有 price 孫節點

###XPath運算子

XPath 表示式可返回節點集、字串、邏輯值以及數字

###XPath函式

計劃

## 計劃(穿插著看一些部落格)

2018-7-3修改一下計劃

### Day1-20《笨方法學Python》每天3-5個習題,20天完成全書(7.13之前完成)

### Day20-40《用python寫網路爬蟲》每天10頁,20天完成全書(7.31之前完成)

### Day40-50 單個帖子的目標資訊爬取(花3-5天時間鞏固、總結)

(下面的暫時放著不繼續)

### Day50-70《精通python網路爬蟲》每天20頁,20天完成全書

### Day70-100整站的目標資訊爬取,實現目標。

2018-7-13修改計劃

開始看python爬蟲這本書,發現上面提到的用於特定的爬蟲的網站都打不開,所以可能要棄書了。

那麼接下來

想繼續訓練一下python程式設計能力,把下面的這個回答中的33個例子自己動手跑一遍理解一下。

這個暑假差不多就過去了。