您的位置:首頁>正文

想入門爬蟲?那你就必須學好正則!爬蟲入門和規則運算式超全合集

用python抓取指定頁面:

urllib.request.urlopen(url)官方文檔返回一個 http.client.HTTPResponse 物件, 這個物件又用到的read()方法;返回資料;這個函數返回一個 http.client.HTTPResponse 物件, 這個物件又有各種方法, 比如我們用到的read()方法;如果你也是程式設計的學習者或者已經學會了的程式設計者!小編這裡有個群:103456743!大家可以加下,

裡面遍佈了全國各地的學習者!為大家提供一個交流平臺, 不管平時有碰到什麼BUG或者學習過程中卡殼, 找不到人替你解決?那麼就進來吧, 裡面熱心的小夥伴還是非常多的, 管理也是挺好的, 有什麼問題, 他如果有時間都能給大家解決, 我覺得是一個非常不錯的交流平臺, 沒事也可以和大家扯扯公司的事學校發生的趣事, 群檔已經上傳了好多G的資料, PDF, 視頻 安裝工具, 安裝教程都是有的, 為了大家的學習能更進一步!也為了大家能愉快的交流, 討論學術問題!所以你還在等什麼呢?好了馬上給大家帶來正文!

data是一個字典, 然後通過urllib.parse.urlencode()來將data轉換為 ‘word=one+peace’的字串, 最後和url合併為full_url

python規則運算式介紹:

佇列 介紹

在爬蟲的程式中用到了廣度優先順序演算法, 該演算法用到了資料結構, 當然你用list也可以實現佇列, 但是效率不高。 現在在此處介紹下:

在容器中有佇列:collection.deque

集合介紹:

在爬蟲程式中, 為了不重複爬那些已經爬過的網站, 我們需要把爬過的頁面的url放進集合中, 在每一次要爬某一個url之前, 先看看集合裡面是否已經存在. 如果已經存在, 我們就跳過這個url; 如果不存在, 我們先把url放入集合中, 然後再去爬這個頁面.

Python 還 包 含 了 一 個 數 據 類 型—— set ( 集 合 ) 。 集 合 是 一 個 無 序 不 重 複 元素 的 集 。 基 本 功 能 包 括 關 系 測 試 和 消 除 重 複 元 素 。 集 合 對 象 還 支 持 union( 聯

合),intersection(交),difference(差)和 sysmmetric difference(對稱差集)等數學運算。

大括弧或 set() 函數可以用來創建集合。 注意:想要創建空集合,你必須使用set() 而不是 {} 。 {}用於創建空字典;

集合的創建演示如下:

規則運算式

在爬蟲時收集回來的一般是字元流, 我們要從中挑選出url就要求有簡單的字串處理能力, 而用規則運算式可以輕鬆的完成這一任務;

規則運算式的步驟:1, 規則運算式的編譯 2, 規則運算式匹配字串 3, 結果的處理

下圖列出了規則運算式的語法:

在pytho中使用規則運算式,需要引入re模組;下面介紹下該模組中的一些方法;

1.compile和match

re模組中compile用於生成pattern的物件,再通過調用pattern實例的match方法處理文本最終獲得match實例;通過使用match獲得資訊;

pattern:

Pattern物件是一個編譯好的規則運算式,通過Pattern提供的一系列方法可以對文本進行匹配查找。

Pattern不能直接產生實體,必須使用re.compile()進行構造。

2.re.match(pattern, string, flags=0)

函數參數說明:

參數描述pattern匹配的規則運算式string要匹配的字串。flags標誌位元,用於控制規則運算式的匹配方式,如:是否區分大小寫,多行匹配等等。

匹配成功re.match方法返回一個匹配的物件,否則返回None。

我們可以使用group(num) 或 groups() 匹配物件函數來獲取匹配運算式。

匹配物件方法描述group(num=0)匹配的整個運算式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回一個包含那些組所對應值的元組。groups()返回一個包含所有小組字串的元組,從 1 到 所含的小組號。

re.search方法

re.search 掃描整個字串並返回第一個成功的匹配。

函數語法:

re.search(pattern, string, flags=0)

函數參數說明:

參數描述pattern匹配的規則運算式string要匹配的字串。flags標誌位元,用於控制規則運算式的匹配方式,如:是否區分大小寫,多行匹配等等。

匹配成功re.search方法返回一個匹配的物件,否則返回None。

我們可以使用group(num) 或 groups() 匹配物件函數來獲取匹配運算式。

匹配物件方法描述group(num=0)匹配的整個運算式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回一個包含那些組所對應值的元組。groups()返回一個包含所有小組字串的元組,從 1 到 所含的小組號。

實例一:

search和match區別:

re.match只匹配字串的開始,如果字串開始不符合規則運算式,則匹配失敗,函數返回None;而re.search匹配整個字串,直到找到一個匹配。

python爬蟲小試牛刀

利用python抓取頁面中所有的http協定的連結,並遞迴抓取子頁面的連結。使用了集合和佇列;此去爬的是我的網站,第一版很多bug;

代碼如下:

那麼你學會了嗎?

如有侵權請聯繫小編刪除哦!

下圖列出了規則運算式的語法:

在pytho中使用規則運算式,需要引入re模組;下面介紹下該模組中的一些方法;

1.compile和match

re模組中compile用於生成pattern的物件,再通過調用pattern實例的match方法處理文本最終獲得match實例;通過使用match獲得資訊;

pattern:

Pattern物件是一個編譯好的規則運算式,通過Pattern提供的一系列方法可以對文本進行匹配查找。

Pattern不能直接產生實體,必須使用re.compile()進行構造。

2.re.match(pattern, string, flags=0)

函數參數說明:

參數描述pattern匹配的規則運算式string要匹配的字串。flags標誌位元,用於控制規則運算式的匹配方式,如:是否區分大小寫,多行匹配等等。

匹配成功re.match方法返回一個匹配的物件,否則返回None。

我們可以使用group(num) 或 groups() 匹配物件函數來獲取匹配運算式。

匹配物件方法描述group(num=0)匹配的整個運算式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回一個包含那些組所對應值的元組。groups()返回一個包含所有小組字串的元組,從 1 到 所含的小組號。

re.search方法

re.search 掃描整個字串並返回第一個成功的匹配。

函數語法:

re.search(pattern, string, flags=0)

函數參數說明:

參數描述pattern匹配的規則運算式string要匹配的字串。flags標誌位元,用於控制規則運算式的匹配方式,如:是否區分大小寫,多行匹配等等。

匹配成功re.search方法返回一個匹配的物件,否則返回None。

我們可以使用group(num) 或 groups() 匹配物件函數來獲取匹配運算式。

匹配物件方法描述group(num=0)匹配的整個運算式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回一個包含那些組所對應值的元組。groups()返回一個包含所有小組字串的元組,從 1 到 所含的小組號。

實例一:

search和match區別:

re.match只匹配字串的開始,如果字串開始不符合規則運算式,則匹配失敗,函數返回None;而re.search匹配整個字串,直到找到一個匹配。

python爬蟲小試牛刀

利用python抓取頁面中所有的http協定的連結,並遞迴抓取子頁面的連結。使用了集合和佇列;此去爬的是我的網站,第一版很多bug;

代碼如下:

那麼你學會了嗎?

如有侵權請聯繫小編刪除哦!

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示