2013-04-06 43 views
0

我正在试图通过一个URL来的urllib有:使用的urllib url变量造成未知的URL类型: '%22http' 错误

# a file with a url on each line 
file_object = open('file.txt', 'r').xreadlines() 
for line in file_object: 
    print line # to check if it is getting the correct value 
    var = urllib.urlopen(line).read() 

我得到的错误:

IOError: [Errno url error] unknown url type: '%22http' 

我认为%22意味着一个逃脱的引号。

所以文件中的URL格式为:

"http://www.test.com" 

和打印语句打印出:

"http://www.test.com" 

和周围的URL "的创建与生成"\"" + url + "\"",目的是让urllib以我认为需要的格式给出url。但似乎转义代码被保存在一个地方,urllib并不仅仅将这个值视为"http://www.test.com"

回答

1

如果要将URL包含在引号中,这是行不通的,因为源代码中只有文字字符串需要引号。在文件中加入引号就好像你在源代码中写入类似"\"http://www.test.com/\""的东西。从文件中删除引号可以解决问题。

+0

谢谢你,我觉得这个工作(后来事情的代码不工作让我不确定,但这可能是无关的)。我认为,因为urllib通常需要''''在URL周围,所以它需要从变量传递的值,但也许,正如你所建议的那样,这只是为了正确赋值,你的解释是更好的哈哈,谢谢。 – user1063287 2013-04-06 08:01:05

1
file_object = open('file.txt', 'r').xreadlines() 
    for line in file_object: 
     print line[1:-2] # to check if it is getting the correct value 
     var = urllib.urlopen(line[1:-2]).read() 

线[1:-2] - 简单地在字符串的结尾剥离的开始和两个一个字符