Как указать, какая группа возвращаемых данных регулярного выражения я хочу напечатать. При использовании функции re.search я бы просто использовать:Python 3.4: группировка списка регулярных выражений
print(tickers.group(2))
Модуля FindAll не позволяет мне использовать .group (2), а перебор возвращаемого списка.
url = 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'
req = urllib.request.Request(url)
resp = urllib.request.urlopen(req)
respData = resp.read()
dRespData = respData.decode('utf-8')
findTicker = re.compile(r'(">)([A-Z]{1,4})(</a></td>)')
tickers = re.findall(findTicker, dRespData)
print(tickers)
Результат
[('">', 'MMM', '</a></td>'), ('">', 'ABT', '</a></td>'), ('">', 'ABBV', '</a></td>').......
Мне нужно просто вернуть 'МММ', 'ABT', 'ABBV'.
Можете ли вы объяснить, почему вы используете регулярные выражения для HTML? – Tomalak
Я хочу разобрать википедию для списка тиков акций sp500. Я использовал простую функцию разделения, и 120 тикеров были исключены из-за незначительных различий кода. Есть ли лучший способ предложить вам? –
Да, это называется парсером HTML. – Tomalak