Python веб-соскоб с регулярным выражением
Может ли кто-нибудь помочь мне с небольшим количеством кода, который я хотел бы создать, чтобы получить статистику из игры? Я могу поместить HTML в BeautifulSoup, но я не знаю, как правильно отформатировать регулярное выражение, чтобы получить конкретный бит данных со всей страницы. Вот что у меня есть:
from urllib import urlopen
from bs4 import BeautifulSoup
import re
content = urlopen('http://www.worldoftanks.com/community/accounts/1000395103-FrankenTank').read()
soup = BeautifulSoup(content)
print soup
Если бы вы могли показать мне, как вытащить одну статистику, я могу выяснить остальные. Одна из характеристик - это "Сражения при участии" (10103), закодированные так:
<tr>
<td class=""> Battles Participated: </td>
<td class="td-number-nowidth"> 10 103 </td>
</tr>
Спасибо!
Фрэнк
2 ответа
battles = soup.find('td', 'td-number-nowidth')
if battles:
print(battles.get_text())
Содержит ли число, которое вы хотите извлечь, промежуток между ними? Если это так, я бы сделал что-то похожее на это:
m = re.search('class="td-number-nowidth">(\d+) (\d+)</td>', soup)
if m:
print(m.groups())
groups () возвращает строку tuple
который будет содержать "10" и "103", поэтому вам может потребоваться объединить их вместе или оставить как string
введите или разберите его в int
для ваших целей.
matched = m.groups()
num = matched[0] + matched[1]
finalnumber = int(num)