爬蟲之re數據提取的使用

本文將業務場景中最經常使用的幾點實例,給你們列舉出來,不常見的再也不一一贅述。

   使用urllib庫能夠模擬瀏覽器發送請求得到服務器返回的數據,下一步就是把有用的數據提取出來。數據分爲兩種形式:結構化和非結構化。html

  非結構化的數據通常指的是文本和HTML。文本的內容特別的雜亂,好比有電話號碼,郵箱等信息,只能使用正則表達式進行提取;HTML能夠使用CSS選擇器,Xpath、正則表達式進行提取。python

  結構化的數據通常指的是JSON和XML。JSon能夠使用JSonPath處理,也能夠轉化成python對象。XML能夠轉化成python對象,或者使用CSS選擇器、Xpath、正則表達式進行提取。正則表達式

  這節主要研究一下正則表達式的使用方法和re模塊的經常使用方法。瀏覽器

--------------------------------------------------------------華麗的分隔符---------------------------------------------------------------------服務器

match():

   從字符串起始位匹配,若是匹配則返回第一個次提取的內容,若是不匹配則返回None。url

m沒有匹配,n匹配到12,此時的n表示的是一個match對象。
 
-------------------------------------------------------------------------------------------
 

        match中能夠設置起始位置和結束位置。spa

 
從零開始計算,3表示第三位開始,5表示第五位結束(不包含第五位字符)。m.group()能夠返回match對象中匹配到的值。
 
--------------------------------------------------------------------------------------------
 

        compile()中能夠設置一些參數,re.I 表示忽略大小寫,re.S表示全文匹配htm

 
m.group()返回匹配內容和m.group(0)同樣,m.group(n)表示匹配的內容中分組的單個內容。 
 
----------------------------------------------------------------------------------------------
 

        除了group()還有一個方法span(),返回的是字符下標。對象

 

        切記,若是match對象爲None時,使用group和span等方法會拋出異常,使用時進行非空判斷。blog

 

search():

        從字符串任意位匹配,若是匹配則返回第一個次提取的內容,若是不匹配則返回None。

 
 

         search中能夠設置起始位置和結束位置

 
從零開始計算,3表示第三位開始,5表示第五位結束(不包含第五位字符)。

findall():

        從字符串任意位匹配,若是匹配則返回全部提取的內容,若是不匹配則返回[]。

 
 

        findall中能夠設置起始位置和結束位置。

 
 

finditer():

        從字符串任意位匹配,若是匹配則返回全部提取的內容組成的迭代對象,若是不匹配也返回一個迭代對象。

 
 

        finditer中能夠設置起始位置和結束位置。

 

        finditer返回的迭代對象能夠理解爲match對象的集合,經過for遍歷的方式,能夠獲取match,group方法能夠獲取匹配的值。

split():

        從字符串任意位匹配,若是匹配,則以匹配的內容爲分割點,返回切分後的list數據。

 
分割點爲{空格 數字 \ ;}的順序形式,有序
------------------------------------------------------------------------------------------
 
分割點爲{空格 數字 \ ;}的各類組合形式,無序
-----------------------------------------------------------------------------------------
 

sub():

        從字符串任意位匹配,若是匹配,則替換匹配的內容,返回替換後的字符串。

 
 

        從字符串任意位匹配,若是匹配,則交換匹配的內容的位置,返回處理後的字符串。

 


做者:愛折騰的胖子
連接:https://www.jianshu.com/p/6b443c37ed5d
來源:簡書

原文出處:https://www.cnblogs.com/beiyi888/p/10396023.html

相關文章
相關標籤/搜索