我想知道这里有人可以帮我创建脚本吗?我之前从未做过这样的事情,所以我不知道自己在做什么。但我现在已经读了几天了,我仍然不理解它,所以我感谢所有帮助。我甚至愿意为你的服务买单!
这是我的问题的一个例子。我目前在我的Windows桌面上保存了一个名为“Stars”的CSV文件,其中包含大约50.000个不同的链接,这些链接在按下时直接开始下载xls文件。每行包含其中一个链接。我希望在你的帮助下为此创建一些脚本,通过每行进行某种循环并访问这些不同的链接,以便下载这些50.000个不同的文件。
感谢大家花时间阅读本文
/莎拉
答案 0 :(得分:0)
说出您的CSV文件如下:
http://www.ietf.org/rfc/rfc959.txt
http://www.ietf.org/rfc/rfc1579.txt
http://www.ietf.org/rfc/rfc2577.txt
在python代码中将路径替换为csvfile
和targetdir
:
import os
import urllib2
csvfile = '/tmp/links.csv'
targetdir = '/tmp/so'
with open(csvfile) as links:
for link in links:
filename = link.split('/')[-1].strip()
filepath = os.path.join(targetdir, filename)
print 'Downloading %s \n\t .. to %s' % (link.strip(), filepath)
with open(filepath, 'w') as data:
xlsfile = urllib2.urlopen(link)
data.writelines(xlsfile)
使用示例:
$ python download_all.py
Downloading http://www.ietf.org/rfc/rfc959.txt
.. to /tmp/so/rfc959.txt
Downloading http://www.ietf.org/rfc/rfc1579.txt
.. to /tmp/so/rfc1579.txt
Downloading http://www.ietf.org/rfc/rfc2577.txt
.. to /tmp/so/rfc2577.txt
$ dir -1 /tmp/so
rfc1579.txt
rfc2577.txt
rfc959.txt
祝你好运。
答案 1 :(得分:0)
另一种解决方案:
如果没有更多信息,我可以就此问题向您提供的最佳答案是使用Selenium下载文件,使用csv模块解析您的csv链接。
示例:
import csv
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2)
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', 'PATH\TO\DOWNLOAD\DIRECTORY')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', "application/csv")
driver = webdriver.Firefox(firefox_profile=profile)
input_csv_location = "PATH\TO\CSV.csv"
with open(csv_location, 'r') as input_csv:
reader = csv.reader(input_csv)
for line in reader:
driver.get(line[0])
这假设csv上没有标题,并且网址位于spot numeo uno中。