问题描述
我在文本文件中有一个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']