簡體   English   中英

在python中使用正則表達式獲取html標簽

[英]Using regex in python for html tags

我正在嘗試使用python閱讀html文檔,並將所有表行收集到一個列表中。 (我知道用於此目的的專用工具,但必須使用regex。)到目前為止,這是我的代碼:

import urllib
import re
URL = 'http://www.xpn.org/events/concert-calendar'
sock = urllib.urlopen( URL )
doc = sock.read()
sock.close()
patString = r'''
    < tr(. * ?)>
    (.*?)
    < /tr>
    '''
pattern = re.compile(patString, re.VERBOSE)
concerts = re.findall(pattern, doc)
print (concerts)

但是,打印僅打印一個空列表。 我嘗試了幾種不同的模式,但是都產生了相同的結果。 我很確定問題出在模式上,但是我不太確定(因為我在編寫此代碼時正試圖被python容納。)我要查找的表行格式為<tr class="odd/even"> other data </tr> ,我想捕獲所有這些數據並將其放入列表中,以供稍后在腳本中使用。

任何幫助表示贊賞。 謝謝

這與您的樣本數據完全匹配。 如果數據在多行上運行,請打開的選項. 匹配\\n re.DOTALL ,該選項是re.DOTALL

<tr(.*?)>(.*?)</tr>

? 中間數據的限定非常重要,否則它可以匹配整個<tr></tr>塊作為數據部分。

這很容易,因為您沒有解析HTML,而是嘗試在非常特殊的情況下提取一些標簽。

事情會變得丑陋,如果你有一個<tr><tr>的例子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM