最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用正則表達式獲取網頁中所需要的信息

 更新時間:2018年01月29日 10:21:51   作者:簾外雨潺潺  
這篇文章主要介紹了Python使用正則獲取網頁中所需要的信息的相關資料,需要的朋友可以參考下

使用正則表達式的幾個步驟:

1、用import re 導入正則表達式模塊;

2、用re.compile()函數(shù)創(chuàng)建一個Regex對象;

3、用Regex對象的search()或findall()方法,傳入想要查找的字符串,返回一個Match對象;

4、調用Match對象的group()方法,返回匹配到的字符串。

在交互式環(huán)境中簡單嘗試一下,查詢字符串中的固話:

 import re
 text = '小明家的固話是0755-123456,而小麗家的固話時0789-654321,小王家的電話是123456789'#用于檢測的字符串
 ph_re = re.compile(r'\d{4}?-\d+') #創(chuàng)建Regex對象,匹配幾種電話的方式,\d表示0-9的數(shù)字,{4}表示前面的匹配4次,?表示可選,+表示出現(xiàn)1次或多次。
 matchs1 = ph_re.findall(text) #findall()表示查找所有匹配項,返回一個字符串
 matchs2 = ph_re.search(text)#search(),查找第一次匹配的文本,返回一個對象。
 print(matchs1)
 print(matchs2)
 matchs2.group()

返回的結果,是這樣的:

findall()方法返回的是一個字符串,可以直接打印出來。而search()方法返回的是一個對象,所以打印出來的是是如圖的第二行。

調用group(),對象返回匹配的結果。

最后,小王的電話之所以沒有匹配到,是因為'-'沒有進行可選即在其后加上‘?'。

下面進行一個小的實驗,獲取某個網頁中所有的http/https網址,并計算有多少個。

首先是獲取HTML文件。這里要用到requests模塊。

 # -*- coding: utf-8 -*-
 import requests
 import re
 def get_html(url):
  res = requests.get(url)
  res.encoding = 'utf-8'
  html = res.text
  return html

這里get_html函數(shù)返回的,其實就類似上面例子中的text,用來匹配的文本。

然后,創(chuàng)建正則表達式:

def get_addr(response):
  addr_regex = re.compile(r'''(
   (http://|https://)?  #http/https
   (www)?
   (\.[a-z1-9A-Z]+)
   (\.com|\.cn)
   )''',re.VERBOSE)#匹配網址,
  matchs = []
  for groups in addr_regex.findall(response):
   matchs.append(groups[0])
  if len(matchs) == 0:
   print('沒有網址')  
  return matchs

這里向re.compile(),傳入變量re.VERBOSE,作為第二個參數(shù),可以將正則表達式放在多行,并進行注釋,如上。

返回一個matchs列表對象。

再來個啟動函數(shù)。

 def start():
  url = 'http://news.163.com/18/0127/18/D966K4CO0001899N.html'
  a = get_html(url)
  b = get_addr(a)
  print('\n'.join(b))
  print(str(len(b)))
  print('ok')
if __name__ == '__main__':
  start()

這里傳入的url是我隨意找的一個新聞鏈接。

然后調用get_html()get_addr(),就得到了想要的東西。str(len(b)),為統(tǒng)計的數(shù)量。

測試的結果是類似這樣的:

這里似乎獲取一些URL,沒什么卵用。。。但是,如果結合前面的查詢新聞列表的方式,獲取批量url,

而創(chuàng)建的正則是xxx.jpg,然后調用os模塊,os.mkdir(folder)、os.chdir(folder),將獲取到的匹配結果寫入文件,放入某個文件夾。

那么就可以實現(xiàn),從某些網站上批量獲取jpg圖片,然后存入某個文件夾的爬蟲功能。實測,可行!

總結

以上所述是小編給大家介紹的Python使用正則獲取網頁中所需要的信息,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • Python聚類算法之基本K均值實例詳解

    Python聚類算法之基本K均值實例詳解

    這篇文章主要介紹了Python聚類算法之基本K均值運算技巧,結合實例形式較為詳細的分析了基本K均值的原理與相關實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • python 給DataFrame增加index行名和columns列名的實現(xiàn)方法

    python 給DataFrame增加index行名和columns列名的實現(xiàn)方法

    今天小編就為大家分享一篇python 給DataFrame增加index行名和columns列名的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 如何用Django處理gzip數(shù)據(jù)流

    如何用Django處理gzip數(shù)據(jù)流

    這篇文章主要介紹了如何用Django處理gzip數(shù)據(jù)流,幫助大家更好的理解和使用django框架,感興趣的朋友可以了解下
    2021-01-01
  • Python?defaultdict教程示例詳解

    Python?defaultdict教程示例詳解

    這篇文章主要為大家介紹了Python?defaultdict教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • python 除法保留兩位小數(shù)點的方法

    python 除法保留兩位小數(shù)點的方法

    今天小編就為大家分享一篇python 除法保留兩位小數(shù)點的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 解決python 讀取 log日志的編碼問題

    解決python 讀取 log日志的編碼問題

    今天小編就為大家分享一篇解決python 讀取 log日志的編碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python線性分類介紹

    Python線性分類介紹

    這篇文章主要介紹了Python線性分類,線性分類指在機器學習領域,分類的目標是指將具有相似特征的對象聚集。而一個線性分類器則透過特征的線性組合來做出分類決定,以達到此種目的。對象的特征通常被描述為特征值,而在向量中則描述為特征向量,需要的朋友可以參考下
    2022-02-02
  • Python設計模式之原型模式實例詳解

    Python設計模式之原型模式實例詳解

    這篇文章主要介紹了Python設計模式之原型模式,結合實例形式較為詳細的分析了Python原型模式的概念、原理、用法及相關操作注意事項,需要的朋友可以參考下
    2019-01-01
  • Python實現(xiàn)將多張圖片合成視頻并加入背景音樂

    Python實現(xiàn)將多張圖片合成視頻并加入背景音樂

    這篇文章主要為大家介紹了如何利用Python實現(xiàn)將多張圖片合成mp4視頻,并加入背景音樂。文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-04-04
  • python3中str(字符串)的使用教程

    python3中str(字符串)的使用教程

    這篇文章主要介紹了python3中str(字符串)的使用教程,文中介紹的非常詳細,對python3中各種str字符串的操作都包含這篇文章中了,需要的朋友可以參考學習,下面來一起看看吧。
    2017-03-03

最新評論

内乡县| 灵璧县| 桃园市| 正阳县| 阿拉善盟| 阜新市| 阿拉善右旗| 科尔| 平谷区| 克什克腾旗| 衡南县| 香格里拉县| 永寿县| 弥渡县| 郧西县| 霸州市| 米林县| 江达县| 蒙山县| 景德镇市| 石棉县| 昌乐县| 珲春市| 怀远县| 开原市| 德格县| 满城县| 项城市| 正蓝旗| 昭通市| 交城县| 双桥区| 西丰县| 望江县| 郸城县| 同仁县| 牙克石市| 休宁县| 石狮市| 垫江县| 惠州市|