Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2009 06:35:11

Ole
От:
Зарегистрирован: 2009-11-23
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с регулярным выражением

Здравствуйте.
Есть Html страница в которой нужно найти ссылку к определенному сайту.
К примеру нужно найти ссылку http://www.site.ru/kjadsfklgjmbntlew в диве где расположен <span class=“url”>www.site2.ru</span>. Для наглядности выделил их жирными.

<div class=“banner”> <!– div 1 –>
<a href="http://www.site.ru/asbflkJHOIYFdjkslhdf“>ссылка</a>
Blalab blab lblalblalballablabla
<span class=”url“>www.site1.ru</span>
</div>

<div class=”banner“> <!– div 2 –>
<a href=”http://www.site.ru/kjadsfklgjmbntlew“>ссылка</a>
Blalab blab lblalblalballablabla
<span class=”url">www.site2.ru</span>
</div>

<div class=“banner”> <!– div 3 –>
<a href="http://www.site.ru/sfghbnrwydsfgd“>ссылка</a>
Blalab blab lblalblalballablabla
<span class=”url">www.site3.ru</span>
</div>

match=re.search(r"""
class[\s]*=[\s]*\"banner\"[\s]*>[\s]*<[\s]*a[\s]*href[\s]*=[\s]*\"(http://www\.site\.ru/[^\"]+)\"
.+ #как написать сюда отрицание /span что-то типа: [^(/span)]+
<span[\s]+class=\"url\">(?:www\.|)site2\.ru
""",content,re.MULTILINE|re.IGNORECASE|re.VERBOSE)
При этом рег. выражении, естественно находиться ссылка из первого дива. Вопрос в том как поставить отрицание /span за место .+ Я пробывал + в этом случае ничего не находиться.



Офлайн

#2 Ноя. 23, 2009 11:39:34

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите с регулярным выражением

lorien
Используйте BeatifulSoup
Даже если будет нужен какой-то сильно извращенный поиск, с помощью BeautifulSoup поисковому алгоритму вы сможете передавать как регекспы, так и функции, обрабатывающие сырую строку, и решающие подходит вам этот узел документа, или нет. Имхо очень удобно.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version