我的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個例子自己動手跑一遍理解一下。
這個暑假差不多就過去了。