Найти - Пользователи
Полная версия: Помогите с регулярным выражением
Начало » Python для новичков » Помогите с регулярным выражением
1
Ole
Здравствуйте.
Есть 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 за место .+ Я пробывал + в этом случае ничего не находиться.
regall
lorien
Используйте BeatifulSoup
Даже если будет нужен какой-то сильно извращенный поиск, с помощью BeautifulSoup поисковому алгоритму вы сможете передавать как регекспы, так и функции, обрабатывающие сырую строку, и решающие подходит вам этот узел документа, или нет. Имхо очень удобно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB