python安全攻防---爬虫基础--re解析数据
生活随笔
收集整理的這篇文章主要介紹了
python安全攻防---爬虫基础--re解析数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
0x01 re基礎
使用re模塊,必須先導入re模塊
import re- findall():匹配所有符合正則的內容,返回的是一個列表
- finditer():匹配所有符合的內容,返回的是迭代器,使用group可取到內容
- search():只匹配一個,返回的是match對象,獲得匹配數據要使用group()
- match():只在開頭匹配
將10086放在字符串最前面就可以匹配了
- compile():預加載正則表達式
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'))在預編譯中有(?P\d+),(?P)是告訴處理器,括號里面的內容需要注意,我需要單獨拿出來,<>里面是告訴處理器,這里拿出來的內容叫什么名字,后面可以根據這個名字對(?P)匹配的內容單獨處理,比如后面group('id')直接根據名字取出數據
案例2
爬取豆瓣電影top250的電影名、導演、時間
程序:
結果:
compile中的re.S是讓.匹配任何字符,換行符也匹配
總結
以上是生活随笔為你收集整理的python安全攻防---爬虫基础--re解析数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 许昌治疗子宫发育不良最好的医院推荐
- 下一篇: python安全攻防---爬虫基础---