#python #regex #python-2.7
#python #регулярное выражение #python-2.7
Вопрос:
Я хочу выполнить поиск, есть ли /[some names]/unfollow
на веб-странице. И у меня очень мало опыта работы с регулярными выражениями. Это то, над чем я работал сейчас.
import urllib
import re
page = urllib.urlopen('http://www.domain.com').read()
results = re.findall('/[w]*/unfollow', page)
for i in results:
print i
Но приведенный выше код ничего не печатает. Я делаю это неправильно? Если это так, мне действительно нужна ваша помощь, ребята
Спасибо
Комментарии:
1. вам просто нужны слова перед / отменить подписку?
2. это регулярное выражение ничего не находит на вашей странице, в любом случае, я предлагаю вам использовать beautifulsoup для синтаксического анализа веб-страницы, использование re — не лучшая идея.
3. @PadraicCunningham да, я просто хочу слова перед
/unfollow
. В некоторых случаях мне приходится просматривать 480 веб-страниц, используяwhile
цикл. Я думаю, что это отнимает много времени. Делает ли использование beautifulsoup более эффективным по времени?
Ответ №1:
Ваша функция findall должна быть,
results = re.findall(r'/[^/]*/unfollow', page)
Он найдет все строки, которые находятся в /some names/unfollow
формате.
Объяснение:
/
Соответствует буквенному/
символу.[^/]*
Соответствует любому символу, не состоящему из/
нуля или более раз./unfollow
Соответствует строке/unfollow
Комментарии:
1. Если вам нужны только слова перед,
/unfollow
тогда попробуйтеm = re.findall(r'/([^/]*)/unfollow', str)
code.