Python3清理并规范化URL列表
我在一个文本文件中有一个URL列表,我需要使用Python 3运行一个函数,以便URL的格式与 列表的一个示例:Python3清理并规范化URL列表,python,python-3.x,url,normalization,normalize,Python,Python 3.x,Url,Normalization,Normalize,我在一个文本文件中有一个URL列表,我需要使用Python 3运行一个函数,以便URL的格式与 列表的一个示例: 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/im
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>
因为字符串在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', 'https://www.google.com/images', 'https://www.google.com/images', 'https://www.google.com/images“]
您好,谢谢您的关注!好的,在列表中,有时会有英国或ca或任何国家代码代替www,因此,我需要在不知道国家代码的情况下自动将其更改为www,也许有一种方法可以更改字符串的开头?@Dave如果只有3个,4重复使用最佳方法的国家将使用与上述相同的代码。只需添加国家的缩写,并将其替换为www
。像这样list1=[item.replace('ca','www')用于列表1中的项目]
。可能会有点重复和不和谐,但会完成工作。如果有很多让我知道,我会尝试。也许有一种方法只是取代一切直到符号“?我在想,也许最好的办法是把所有的东西都替换掉,直到上面提到的符号变成“”。目前,这些URL都在一个文本文件中,我可以循环它们,每一个都在不同的行上,所以也许在Python中有一种方法可以检查URL是否以开头,如果不是,我可以替换为?很抱歉,如果我不善于解释,但我认为这个解决方案可能有效,但我不知道这是否可行,我无法找到任何例子。谢谢大家!@戴夫:是的,当然有。给我点时间。我会更新答案,让你知道。问题是,有一个非常大的网址数量,我将无法写每个国家,但仍然感谢你检查这个!
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)