python安全攻防---爬虫基础--re解析数据
生活随笔
收集整理的這篇文章主要介紹了
python安全攻防---爬虫基础--re解析数据
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
0x01 re基礎(chǔ)
使用re模塊,必須先導(dǎo)入re模塊
import re- findall():匹配所有符合正則的內(nèi)容,返回的是一個(gè)列表
- finditer():匹配所有符合的內(nèi)容,返回的是迭代器,使用group可取到內(nèi)容
- search():只匹配一個(gè),返回的是match對象,獲得匹配數(shù)據(jù)要使用group()
- match():只在開頭匹配
將10086放在字符串最前面就可以匹配了
- compile():預(yù)加載正則表達(dá)式
0x02 案例
案例1
獲取下面字符串里面的名字和ID:
''' <div class='jcw'><span id='1'>金城武</span></div> <div class='hg'><span id='2'>胡歌</span></div> <div class='pyy'><span id='3'>彭于晏</span></div> <div class='az'><span id='4'>阿祖</span></div> '''程序:
import restr = ''' <div class='jcw'><span id='1'>金城武</span></div> <div class='hg'><span id='2'>胡歌</span></div> <div class='pyy'><span id='3'>彭于晏</span></div> <div class='az'><span id='4'>阿祖</span></div> '''com = re.compile("<div class='.*?'><span id='(?P<id>\d+)'>(?P<name>.*?)</span></div>") result = com.finditer(str) for i in result:print(i.group('id'),i.group('name'))在預(yù)編譯中有(?P\d+),(?P)是告訴處理器,括號(hào)里面的內(nèi)容需要注意,我需要單獨(dú)拿出來,<>里面是告訴處理器,這里拿出來的內(nèi)容叫什么名字,后面可以根據(jù)這個(gè)名字對(?P)匹配的內(nèi)容單獨(dú)處理,比如后面group('id')直接根據(jù)名字取出數(shù)據(jù)
案例2
爬取豆瓣電影top250的電影名、導(dǎo)演、時(shí)間
程序:
結(jié)果:
compile中的re.S是讓.匹配任何字符,換行符也匹配
總結(jié)
以上是生活随笔為你收集整理的python安全攻防---爬虫基础--re解析数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 许昌治疗子宫发育不良最好的医院推荐
- 下一篇: 狄仁杰洗冤录剧情介绍