безопасное регулярное выражение для поиска писем от html - PullRequest
0 голосов
/ 07 апреля 2020
url ="https://www.siliconvalleypediatricdentistry.com/"
res=requests.get(url)
html=res.text
#re.findall(r'([\w0-9._-]+@[\w0-9._-]+\.[\w0-9_-]+)',html)
#re.findall(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)",html)

Я нашел много вопросов по этому поводу, но большинство из них извлекают "неправильные" электронные письма

Я получаю это как вывод

['8b4e078a51d04e0e9efdf470027f0ec1@sentry.wixpress.com',
 'core-js-bundle@3.2.1',
 'whatwg-fetch@3.0.0',
 'requirejs-bolt@2.3.6',
 'svpdinfo@gmail.com',
 'svpdinfo@gmail.com',
 'SVPDinfo@gmail.com']

некоторые из них просто JS скриптов, есть ли безопасное регулярное выражение для использования или модуль, который делает это?

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Просто можете попробовать это:

r'^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$'

Или вы можете использовать свое собственное регулярное выражение и просто проверить, действителен ли адрес электронной почты:

from validate_email import validate_email
is_valid = validate_email('svpdinfo@gmail.com')
1 голос
/ 07 апреля 2020

Это работает для меня:

re.findall(r'([\w-]+@[\w-]+\.[a-zA-Z]{1,5})',html)

По сути, мы просто заставляем конец быть буквами (например, .com), поэтому сценарии JS не совпадают

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...