3

re api を使用して、テキスト ファイルから URL を抽出しようとしています。http:// 、 https:// 、 www で始まるすべてのリンク。

ファイルにはテキストとhtmlソースコードが含まれており、html部分はBeautifulSoupで抽出できるので簡単ですが、通常のテキストはもっと難しいようです。URL抽出の最良の実装と思われるこれをオンラインで見つけましたが、特定のタグで失敗し、特にタグを処理できず、それらをURLに含めます。私は文字列の一致にまったく慣れていないので、助けていただければ幸いです

ここに署名があります

sp1=re.findall("http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+", str(STRING))
sp2=re.findall('www.(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', str(STRING))

例:

http://www.website.com/science/</span></a><o:p></o:p></span></div><div
www.website.com/library/</span></a></span></i><span
http://awebsite.com/Groups</a><div>
4

1 に答える 1

9
re.findall(r'https?://[^\s<>"]+|www\.[^\s<>"]+', str(STRING))

この[^\s<>"]+部分は、次のような文字列の一致を避けるために、空白文字、引用符、山括弧以外の文字に一致します。

<a href="http://www.example.com/stuff">
http://www.example.com/stuff</br>
于 2012-05-06T23:49:04.170 に答える