我发现这里的大多数帖子都是靠近标签以在文本文件中找到url。但并非所有的文本文件都必须在它们旁边都有html标签。我正在寻找一种适用于这两种情况的解决方案。以下正则表达式是:python从没有html标签的文本文件中提取URL
'http[s]?://(?:[a-zA-Z]|[0-9]|[[email protected]&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'
正则表达式来使用以下代码从文本文件中获取的URL,但问题是它也需要不必要的字符,如“>”
这是我的代码:
import re
def extractURLs(fileContent):
urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[[email protected]&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', fileContent.lower())
print urls
return urls
myFile = open("emailBody.txt")
fileContent = myFile.read()
URLs = URLs + extractURLs(fileContent)
输出的例子如下:
http://saiconference.com/ficc2018/submit
http://52.21.30.170/sendy/unsubscribe/qhiz2s763l892rkps763chacs52ieqkagf8rbueme9n763jv6da/hs1ph7xt5nvdimnwwfioya/qg0qteh7cllbw8j6amo892ca>
https://www.youtube.com/watch?v=gvwyoqnztpy>
http://saiconference.com/ficc
http://saiconference.com/ficc>
http://saiconference.com/ficc2018/submit>
正如你可以看到有一些字符acters(如'>')导致问题。我究竟做错了什么?
可以请你分享一下** emailBody.txt **的内容。那么它会更容易地帮助你 – Arijit
>在线提交:http://saiconference.com/FICC2018/Submit >会议网站提供完整的详细信息:http ://saiconference.com/FICC >会议视频 |取消订阅 –
mazkopolo
这很难理解您的文本。所以你可以在你的问题中添加这个文本,并且在'URLs = URLs + extractURLs(fileContent)'中,你之前没有定义过'URLs' – Arijit