Как ограничить метод Beautiful soup find_all () только определенным количеством результатов? - PullRequest
0 голосов
/ 28 февраля 2020

Я создаю веб-браузер, который извлекает электронные письма для малого бизнеса. Я использую красивый суп для чистки. По сути, программа ищет в Google ключевое слово, сохраняет первые 20 ссылок в списке, и для каждой из этих ссылок она анализирует их с помощью красивого супа, ищет все атрибуты href, содержащие слово «контакт», и выполняет следующие действия: контактные страницы и извлекает электронные письма.

Теперь я хочу получать информацию только на сайтах малого бизнеса. Возникает проблема: иногда появляется ссылка на огромный веб-сайт, такой как alibaba или amazon, который мне не нужен, поскольку время поиска будет слишком долгим. Я попытался создать для них черный список, но есть вероятность, что я столкнусь с огромным сайтом, о котором я не знал.

Есть ли способ, которым мы можем ограничить метод красивого супа find_all () для следующего сегмента кода:

menu = soup.find_all('a', href=True)

Здесь menu - это список ссылок, найденных на главной странице. Затем для этих ссылок я сохраняю только те, в которых есть контакт (без учета регистра), например:

for item in menu:
          if contains("Contact", str(item)):
             filtered_menu.append(item)

Здесь содержит метод, который я определил.

Итак, можем ли мы ограничить метод find_all ()? Другой подход, который приходит мне в голову, это, возможно, ограничение для l oop, который ищет контакт. Как бы вы сделали это в этом случае?

Вот мой метод содержит:

def contains(substring, string):
     if substring.lower() in string.lower():
          return True
     else:
          return False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...