2014-09-19 2 views
0

Итак, я некоторое время занимался некоторыми исследованиями, и я не мог найти ничего об обнаружении URL-адреса в строке. Проблема в том, что большинство результатов заключается в определении того, является ли строка URL-адресом, а не содержит URL-адрес. В 2 результаты, которые выглядят лучше для меня являютсяPython - обнаружение (spammy) URLS в строке

Regex to find urls in string in Python и Detecting a (naughty or nice) URL or link in a text string

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

spamlist = [".com",".co.uk","etc"] 
for word in string: 
    if word in spamlist: 
     Do().stuff() 

Но это было бы честно делать больше плохого, чем хорошего, и я 100% уверен, что это лучший способ, используя регулярные выражения или что-нибудь!

Так что если кто-нибудь знает что-нибудь, что могло бы мне помочь, я был бы очень благодарен! Я занимаюсь только питоном в течение 1-2 месяцев и не очень интенсивно в течение этого периода, но чувствую, что делаю большой прогресс, и на самом деле все это на самом деле.

EDIT: Извините, что не указали ранее, я ищу, чтобы использовать это локально, а не веб-сайт (apache) или что-то подобное. Больше пытаюсь очистить любые ссылки из файлов, которые я повесил.

+1

Вы рассмотрели более сложные методы обнаружения спама? Как использование существующего зрелого решения, такого как SpamAssassin? –

+0

как упоминание @ivan_pozdeev не пытайтесь заново изобрести колесо ... поскольку этот материал действительно сложный, особенно потому, что URL-адрес без http: // настолько разрешен. – user3012759

+0

Решение в [Обнаружение (непослушный или красивый) URL-адрес. ..] (http://stackoverflow.com/questions/700163) * есть * regex btw. –

ответ

0

Как я уже говорил в комментариях,

  • Detecting a (naughty or nice) URL or link in a text string «s решение является регулярное выражение, и вы, вероятно, следует сделать это сырым строка или избежать обратной косой черты в нем при его использовании в Python

  • Вы действительно не должны изобретать квадратное колесо здесь, тем более, что спам-фильтрация является доменом гонки гонок (не помню точной английской фразы для этого)

Смежные вопросы