Поиск строки на веб-странице с использованием регулярного выражения на Python?

#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.