Я создаю веб-браузер, который извлекает электронные письма для малого бизнеса. Я использую красивый суп для чистки. По сути, программа ищет в 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