次の正規表現を書きたかったのです。
<td class="prodSpecAtribute" rowspan="2">[words]</td>
また
<td class="prodSpecAtribute">[words]</td>
私が持っている2番目のケース:
find2 = re.compile('<td class="prodSpecAtribute">(.*)</td>')
しかし、2つの式のいずれかを使用できる正規表現を作成するにはどうすればよいですか
これには正規表現を使用せず、BeautifulSoup などの HTML パーサーを使用してください。例えば:
>>> from bs4 import BeautifulSoup
>>> soup1 = BeautifulSoup('<td class="prodSpecAtribute" rowspan="2">[words]</td>')
>>> soup1.find('td', class_='prodSpecAtribute').contents[0]
u'[words]'
>>> soup2 = BeautifulSoup('<td class="prodSpecAtribute">[words]</td>')
>>> soup2.find('td', class_='prodSpecAtribute').contents[0]
u'[words]'
または、すべての一致を検索するには:
soup = BeautifulSoup(page)
for td in soup.find_all('td', class_='prodSpecAtribute'):
print td.contents[0]
BeautifulSoup 3 の場合:
soup = BeautifulSoup(page)
for td in soup.findAll('td', {'class': 'prodSpecAtribute'}):
print td.contents[0]