[英]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.