Форум сайта python.su
0
Здрям!
Ищу определенный текст. В случае, если текст не найден, хочу чтобы на печать вышло соответствующее сообщение. Вот так чё-та не работает
:
uk=re.search(r'([\d\s\.,а-я]*)[\s<>/]*Капитал\s([()\d\.]*)', spravka) print ('Капитал: ', uk.group(2), uk.group(1)) if uk is not None:uk.group(0), print ('Капитал: данных нет')
s=re.sub(r'[A-z&=;]+', r'',full).strip()
Отредактировано Kir@ (Сен. 8, 2015 15:36:43)
Офлайн
253
Kir@Как не работает? Вроде должно нормально по эксепшену вываливаться при отсутствии текста поскольку ищете свойства у None.
Здрям
Kir@Лучше текст приведите и скажите что хотите выделить. Удалить латиницу кроме названий сайтов - это крокодил будет.
И совсем забыл, что в тексте могут быть указаны сайты.
Офлайн
3
doza_andДа ладно. Что человек спрашиват, наверное то ему и нужно…
Удалить латиницу кроме названий сайтов - это крокодил будет.
<domain> ::= <subdomain> | " " <subdomain> ::= <label> | <subdomain> "." <label> <label> ::= <letter> [ [ <ldh-str> ] <let-dig> ] <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig-hyp> ::= <let-dig> | "-" <let-dig> ::= <letter> | <digit> <letter> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <digit> ::= any one of the ten digits 0 through 9
Отредактировано Iskatel (Сен. 9, 2015 01:02:24)
Офлайн
0
doza_and
Как не работает? Вроде должно нормально по эксепшену вываливаться при отсутствии текста поскольку ищете свойства у None.
Капитал (14.09.2006) : 10 000 руб. Капитал: данных нет
Капитал : Капитал: данных нет
Офлайн
0
doza_andКод всей страницы до удаления латиницы - 300 000 знаков, после - 72 000 знаков.
Лучше текст приведите и скажите что хотите выделить. Удалить латиницу кроме названий сайтов - это крокодил будет.
Офлайн
857
Напиши задание, приведи пример входящего текста и выходящего текста.
Офлайн
0
Задание - парсинг html-кода ленивых коекакеров.
Код от латиницы я чищу, чтобы сократить объем с ~350К символов до ~70К.
Вход (пример почищенного кода про сайт):
190">-:</> <>@.., .., @.</> </> <> < ":190">Сайт:</> < >www.1-mail.com/ </> </> <> < ":190">
Отредактировано Kir@ (Сен. 9, 2015 09:21:40)
Офлайн
857
Kir@Кусок нечищенного напиши. Чистишь-то неправильно, после чистки не должно ничего лишнего быть.
Вход (пример почищенного кода про сайт):
Офлайн
0
<tr> <td style="width:190px;">Сайт:</td> <td valign="middle"> www.gazprom.ru, www.e-disclosure.ru/portal/company.aspx?id=934 </td> </tr>
Отредактировано Kir@ (Сен. 9, 2015 11:55:27)
Офлайн
857
Чтобы эти ссылки вытащить, сначала нужно выбрать текстовые узлы из таблицы. Делается это через lxml.html.
Когда у тебя есть текст из тега <td>
www.gazprom.ru, www.e-disclosure.ru/portal/company.aspx?id=934
>>> import lxml.html >>> >>> text = """ ... <tr> ... <td style="width:190px;">Сайт:</td> ... <td valign="middle"> ... www.gazprom.ru, www.e-disclosure.ru/portal/company.aspx?id=934 ... </td> ... </tr> ... """ >>> >>> doc = lxml.html.fromstring(text) >>> lst = doc.xpath(r'.//td/text()') >>> lst ['Сайт:', '\n www.gazprom.ru, www.e-disclosure.ru/portal/company.aspx?id=934\n '] >>>
Отредактировано py.user.next (Сен. 9, 2015 12:17:43)
Офлайн