使用Python获取请求的麻烦

时间:2014-05-26 03:45:42

标签: python python-2.7 download python-requests

我正在尝试使用我已有的网址列表自动从网站下载文件。我的代码的相关部分如下所示:

for url in urls:
    if len(url) != 0:
        print url

运行它会将url列表打印为字符串 - 正如预期的那样。但是,当我添加一个新行时,如下所示:

for url in urls:
    if len(url) != 0:
        print url
        r = requests.get(url)

出现错误,显示“无效的URL u'Document Detail”:未提供架构。在此之前,它应该打印一个网址。以前,这按预期打印了网址。但是,现在它打印“文档详细信息”而不是URL。我不太清楚为什么会这样,以及如何解决它。

任何帮助将不胜感激!

修改

urls = []
with open('filename.csv', 'rb') as f:
    reader = csv.reader(f)
    count = 0
    for row in reader:
        urls.append(row[34])

3 个答案:

答案 0 :(得分:2)

参考我的评论,"文件详情"是你的csv的标题。跳过它。这是一种方法。

urls = []
with open('filename.csv', 'rb') as f:
    read = f.readlines()
    urls = [row.split(",")[34] for row in read[1:]]

答案 1 :(得分:0)

csv文件的布局可能已更改且网址不再位于 33 列中(即34 {1,因为rows为零)。

答案 2 :(得分:0)

你应该明确地将url转换为字符串:

for url in urls:
    if len(url) != 0:
        print str(url)
        r = requests.get(str(url))

也许你可以给我们一些你的.csv文件。