本文將業務場景中最經常使用的幾點實例,給你們列舉出來,不常見的再也不一一贅述。
使用urllib庫能夠模擬瀏覽器發送請求得到服務器返回的數據,下一步就是把有用的數據提取出來。數據分爲兩種形式:結構化和非結構化。html
非結構化的數據通常指的是文本和HTML。文本的內容特別的雜亂,好比有電話號碼,郵箱等信息,只能使用正則表達式進行提取;HTML能夠使用CSS選擇器,Xpath、正則表達式進行提取。python
結構化的數據通常指的是JSON和XML。JSon能夠使用JSonPath處理,也能夠轉化成python對象。XML能夠轉化成python對象,或者使用CSS選擇器、Xpath、正則表達式進行提取。正則表達式
這節主要研究一下正則表達式的使用方法和re模塊的經常使用方法。瀏覽器
--------------------------------------------------------------華麗的分隔符---------------------------------------------------------------------服務器
match():
從字符串起始位匹配,若是匹配則返回第一個次提取的內容,若是不匹配則返回None。url
match中能夠設置起始位置和結束位置。spa
![](http://static.javashuo.com/static/loading.gif)
compile()中能夠設置一些參數,re.I 表示忽略大小寫,re.S表示全文匹配htm
![](http://static.javashuo.com/static/loading.gif)
除了group()還有一個方法span(),返回的是字符下標。對象
![](http://static.javashuo.com/static/loading.gif)
切記,若是match對象爲None時,使用group和span等方法會拋出異常,使用時進行非空判斷。blog
search():
從字符串任意位匹配,若是匹配則返回第一個次提取的內容,若是不匹配則返回None。
![](http://static.javashuo.com/static/loading.gif)
search中能夠設置起始位置和結束位置。
![](http://static.javashuo.com/static/loading.gif)
findall():
從字符串任意位匹配,若是匹配則返回全部提取的內容,若是不匹配則返回[]。
![](http://static.javashuo.com/static/loading.gif)
findall中能夠設置起始位置和結束位置。
![](http://static.javashuo.com/static/loading.gif)
finditer():
從字符串任意位匹配,若是匹配則返回全部提取的內容組成的迭代對象,若是不匹配也返回一個迭代對象。
![](http://static.javashuo.com/static/loading.gif)
finditer中能夠設置起始位置和結束位置。
![](http://static.javashuo.com/static/loading.gif)
finditer返回的迭代對象能夠理解爲match對象的集合,經過for遍歷的方式,能夠獲取match,group方法能夠獲取匹配的值。
split():
從字符串任意位匹配,若是匹配,則以匹配的內容爲分割點,返回切分後的list數據。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
sub():
從字符串任意位匹配,若是匹配,則替換匹配的內容,返回替換後的字符串。
![](http://static.javashuo.com/static/loading.gif)
從字符串任意位匹配,若是匹配,則交換匹配的內容的位置,返回處理後的字符串。
![](http://static.javashuo.com/static/loading.gif)
做者:愛折騰的胖子
連接:https://www.jianshu.com/p/6b443c37ed5d
來源:簡書
原文出處:https://www.cnblogs.com/beiyi888/p/10396023.html