欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用正則表達(dá)式獲取網(wǎng)頁中所需要的信息

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

使用正則表達(dá)式的幾個(gè)步驟:

1、用import re 導(dǎo)入正則表達(dá)式模塊;

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

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

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

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

 import re
 text = '小明家的固話是0755-123456,而小麗家的固話時(shí)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()表示查找所有匹配項(xiàng),返回一個(gè)字符串
 matchs2 = ph_re.search(text)#search(),查找第一次匹配的文本,返回一個(gè)對象。
 print(matchs1)
 print(matchs2)
 matchs2.group()

返回的結(jié)果,是這樣的:

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

調(diào)用group(),對象返回匹配的結(jié)果。

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

下面進(jìn)行一個(gè)小的實(shí)驗(yàn),獲取某個(gè)網(wǎng)頁中所有的http/https網(wǎng)址,并計(jì)算有多少個(gè)。

首先是獲取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ù)返回的,其實(shí)就類似上面例子中的text,用來匹配的文本。

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

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

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

返回一個(gè)matchs列表對象。

再來個(gè)啟動(dòng)函數(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是我隨意找的一個(gè)新聞鏈接。

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

測試的結(jié)果是類似這樣的:

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

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

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

總結(jié)

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

相關(guān)文章

  • Python 爬取必應(yīng)壁紙的實(shí)例講解

    Python 爬取必應(yīng)壁紙的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python 爬取必應(yīng)壁紙的實(shí)例講解,有興趣的朋友們可以跟著學(xué)習(xí)參考下。
    2020-02-02
  • 如何使用Python控制攝像頭錄制視頻

    如何使用Python控制攝像頭錄制視頻

    這篇文章主要介紹了如何使用Python控制攝像頭錄制視頻,實(shí)現(xiàn)過程需要用到三個(gè)庫tkinter庫、PIL庫、cv2庫,下面將內(nèi)容詳細(xì)的一步一步實(shí)現(xiàn),希望對你有所啟發(fā)并能做一個(gè)屬于自己的攝像頭控制程序
    2022-03-03
  • Python3 venv搭建輕量級(jí)虛擬環(huán)境的步驟(圖文)

    Python3 venv搭建輕量級(jí)虛擬環(huán)境的步驟(圖文)

    這篇文章主要介紹了Python3 venv搭建輕量級(jí)虛擬環(huán)境的步驟(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python sqlalchemy時(shí)間戳及密碼管理實(shí)現(xiàn)代碼詳解

    Python sqlalchemy時(shí)間戳及密碼管理實(shí)現(xiàn)代碼詳解

    這篇文章主要介紹了Python sqlalchemy時(shí)間戳及密碼管理實(shí)現(xiàn)代碼詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Python中的list與tuple集合區(qū)別解析

    Python中的list與tuple集合區(qū)別解析

    這篇文章主要介紹了Python中的list與tuple集合區(qū)別解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python實(shí)現(xiàn)合并excel表格的方法分析

    Python實(shí)現(xiàn)合并excel表格的方法分析

    這篇文章主要介紹了Python實(shí)現(xiàn)合并excel表格的方法,結(jié)合實(shí)例形式分析了Python合并Excel表格的原理、實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • Python繪制柱狀圖堆疊圖完整代碼

    Python繪制柱狀圖堆疊圖完整代碼

    有個(gè)朋友要求幫忙繪制堆疊柱狀圖,查閱了一些文檔之后也算是完成了,只是一個(gè)小demo,下面我就記錄一下,這篇文章主要給大家介紹了關(guān)于Python繪制柱狀圖堆疊圖的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • 如何利用Fabric自動(dòng)化你的任務(wù)

    如何利用Fabric自動(dòng)化你的任務(wù)

    大家都知道Fabric是一個(gè)Python庫,可以通過SSH在多個(gè)host上批量執(zhí)行任務(wù)。你可以編寫任務(wù)腳本,然后通過Fabric在本地就可以使用SSH在大量遠(yuǎn)程服務(wù)器上自動(dòng)運(yùn)行。這些功能非常適合應(yīng)用的自動(dòng)化部署,或者執(zhí)行系統(tǒng)管理任務(wù)。本文將介紹如何利用Fabric自動(dòng)化你的任務(wù)。
    2016-10-10
  • Python爬蟲框架Scrapy常用命令總結(jié)

    Python爬蟲框架Scrapy常用命令總結(jié)

    這篇文章主要介紹了Python爬蟲框架Scrapy常用命令,結(jié)合實(shí)例形式總結(jié)分析了Scrapy框架中常見的全局命令與項(xiàng)目命令功能、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • python 鏡像環(huán)境搭建總結(jié)

    python 鏡像環(huán)境搭建總結(jié)

    這篇文章主要介紹了python 鏡像環(huán)境搭建總結(jié),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09

最新評(píng)論