【发布时间】:2014-06-10 07:51:31
【问题描述】:
我有一个 python 脚本,它可以获取网页并对其进行镜像。它适用于一个特定页面,但我无法让它适用于多个页面。我以为我可以将多个 URL 放入一个列表中,然后将其提供给函数,但我得到了这个错误:
Traceback (most recent call last):
File "autowget.py", line 46, in <module>
getUrl()
File "autowget.py", line 43, in getUrl
response = urllib.request.urlopen(url)
File "/usr/lib/python3.2/urllib/request.py", line 139, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.2/urllib/request.py", line 361, in open
req.timeout = timeout
AttributeError: 'tuple' object has no attribute 'timeout'
这是有问题的代码:
url = ['https://www.example.org/', 'https://www.foo.com/', 'http://bar.com']
def getUrl(*url):
response = urllib.request.urlopen(url)
with urllib.request.urlopen(url) as response, open(file_name, 'wb') as out_file:
shutil.copyfileobj(response, out_file)
getUrl()
我已经用尽了谷歌试图找到如何使用 urlopen() 打开列表的方法。我找到了一种可行的方法。它需要一个 .txt 文档并逐行遍历它,将每一行作为 URL 提供,但我正在使用 Python 3 编写它,无论出于何种原因 twillcommandloop 都不会导入。另外,这种方法很笨拙,并且需要(据说)不必要的工作。
无论如何,任何帮助将不胜感激。
【问题讨论】:
-
你为什么不简单地用
for循环遍历你的URL列表? -
回复sheng的评论时突然想到这个!它会将特定部分作为字符串返回,对吗?