微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 3清理并规范化URL列表

如何解决Python 3清理并规范化URL列表

我在文本文件中有一个URL列表,我需要使用Python 3运行一个函数,以便该URL与https://www.google.com/images/的格式匹配

列表的示例:

http://www.google.com/images/<text>
https://ca.google.com/images/<text>
https://www.google.com/images/<text>
http://uk.google.com/images/<text>
https://www.google.com/images/<text>

我需要制作一个脚本来读取文件,清理URL,以便例如将URL http://www.google.com/images/更改为https://www.google.com/images/并将国家代码替换为www也一样因此,如果它是http://ca.google.com,则应更改为https://www.google.com

请问我应该使用什么工具来检测不正确的URL,以便找到它们,修复它们并将其保存到文件

任何帮助将不胜感激,谢谢!

当前代码

urls = open("urls.txt","r",encoding='utf-8')
urls = [item.replace('http://','https://') for item in urls]
for item in urls:
    if not 'www' in item:
        old_item = item
        v = str(item[8:10])
        new_item = item.replace(v,'www')
        urls.append(new_item)
        urls.remove(old_item)
print(urls)

解决方法

由于字符串在python中是不可变的,因此我们不能更改它们中的字母而是创建新的字符串,因此稍微复杂一些。首先,我们删除http元素。然后,我们检查链接中是否存在www。如果没有,我们将国家代码(两个字母)替换为www

list1 = ['http://www.google.com/images','https://ca.google.com/images','https://www.google.com/images','http://uk.google.com/images','https://www.google.com/images']
list1 = [item.replace('http://','https://') for item in list1]
for item in list1:
    if not 'www' in item:
        old_item = item
        v = str(item[8:10])
        new_item = item.replace(v,'www')
        list1.append(new_item)
        list1.remove(old_item)

print(list1)

输出: ['https://www.google.com/images','https://www.google.com/images']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。