如何让我的 Python 脚本转到 URL,下载最新文件
How to get my Python script to go to a URL, download the latest file
我写了这个 Python 脚本来创建一个 sheet 只有我们体育俱乐部的运动员来自全国排名。目前我必须下载排名文件,然后重新命名。
#import the writer
import xlwt
#import the reader
import xlrd
#open the rankings spreadsheet
book = xlrd.open_workbook('rankings.xls')
#open the first sheet
first_sheet = book.sheet_by_index(0)
#print the values in the second column of the first sheet
print first_sheet.col_values(1)
#open the spreadsheet
workbook = xlwt.Workbook()
#add a sheet named "Club BFA ranking"
worksheet1 = workbook.add_sheet("Club BFA ranking")
#in cell 0,0 (first cell of the first row) write "Ranking"
worksheet1.write(0, 0, "Ranking")
#in cell 0,1 (second cell of the first row) write "Name"
worksheet1.write(0, 1, "Name")
#save and create the spreadsheet file
workbook.save("saxons.xls")
name = []
rank = []
for i in range(first_sheet.nrows):
#print(first_sheet.cell_value(i,3))
if('Saxon' in first_sheet.cell_value(i,3)):
name.append(first_sheet.cell_value(i,1))
rank.append(first_sheet.cell_value(i,8))
print('a')
for j in range(len(name)):
worksheet1.write(j+1,0,rank[j])
worksheet1.write(j+1,1,name[j])
workbook.save("saxons.xls")
作为下一次迭代,我希望它转到特定的 URL 并下载最新的传播 sheet 用作 rankings.xls
我该怎么做?
您可以使用 requests 库。例如,
import requests
url = "YOUR_URL"
downloaded_file = requests.get(url)
with open("YOUR_PATH/rankings.xls", 'wb') as file:
file.write(downloaded_file.content)
编辑:你提到你想下载最新版本的文件,你可以使用time如下填写月份和年份。
time.strftime("https://www.britishfencing.com/wp-content/uploads/%Y/%m/ranking_file.xls")
作为YOUR_URL
获取最新一个月的排名。
我不确定 "latest" 电子表格是什么意思,但是您可以通过多种方式从网上下载文件。我建议使用非常非常容易使用的著名请求库。
做一个
pip install requests
在做
之前
import requests
url = "http://foobar.com/rankings.xls"
r = requests.get(url)
然后将内容推送到文件中
with open('./rankings.xls', 'w') as f:
f.write(r.content)
因此,可以通过使用哈希码左右进行比较来检查您最近下载的 rankings.xls 是否比以前下载的 rankins.xls 更新。
编辑:OP 要求提供一种从页面中提取最新 xls 文件的方法。我建议为包含 xls 的 href 解析 html(因为 OP 想要解析的页面没有提供要下载的 xls 文件的通用格式)。
最好的方法是 BeautifulSoup:
pip install bs4
from bs4 import BeautifulSoup
import requests
x=requests.get('https://www.britishfencing.com/results-rankings/mens-foil-ranking-archive/')
soup = BeautifulSoup(x.content, 'html.parser')
result = [ xls['href'] for xls in soup.find_all('a', href=True) if 'xls' in xls['href']]
print(result[0])
我写了这个 Python 脚本来创建一个 sheet 只有我们体育俱乐部的运动员来自全国排名。目前我必须下载排名文件,然后重新命名。
#import the writer
import xlwt
#import the reader
import xlrd
#open the rankings spreadsheet
book = xlrd.open_workbook('rankings.xls')
#open the first sheet
first_sheet = book.sheet_by_index(0)
#print the values in the second column of the first sheet
print first_sheet.col_values(1)
#open the spreadsheet
workbook = xlwt.Workbook()
#add a sheet named "Club BFA ranking"
worksheet1 = workbook.add_sheet("Club BFA ranking")
#in cell 0,0 (first cell of the first row) write "Ranking"
worksheet1.write(0, 0, "Ranking")
#in cell 0,1 (second cell of the first row) write "Name"
worksheet1.write(0, 1, "Name")
#save and create the spreadsheet file
workbook.save("saxons.xls")
name = []
rank = []
for i in range(first_sheet.nrows):
#print(first_sheet.cell_value(i,3))
if('Saxon' in first_sheet.cell_value(i,3)):
name.append(first_sheet.cell_value(i,1))
rank.append(first_sheet.cell_value(i,8))
print('a')
for j in range(len(name)):
worksheet1.write(j+1,0,rank[j])
worksheet1.write(j+1,1,name[j])
workbook.save("saxons.xls")
作为下一次迭代,我希望它转到特定的 URL 并下载最新的传播 sheet 用作 rankings.xls
我该怎么做?
您可以使用 requests 库。例如,
import requests
url = "YOUR_URL"
downloaded_file = requests.get(url)
with open("YOUR_PATH/rankings.xls", 'wb') as file:
file.write(downloaded_file.content)
编辑:你提到你想下载最新版本的文件,你可以使用time如下填写月份和年份。
time.strftime("https://www.britishfencing.com/wp-content/uploads/%Y/%m/ranking_file.xls")
作为YOUR_URL
获取最新一个月的排名。
我不确定 "latest" 电子表格是什么意思,但是您可以通过多种方式从网上下载文件。我建议使用非常非常容易使用的著名请求库。
做一个
pip install requests
在做
之前import requests
url = "http://foobar.com/rankings.xls"
r = requests.get(url)
然后将内容推送到文件中
with open('./rankings.xls', 'w') as f:
f.write(r.content)
因此,可以通过使用哈希码左右进行比较来检查您最近下载的 rankings.xls 是否比以前下载的 rankins.xls 更新。
编辑:OP 要求提供一种从页面中提取最新 xls 文件的方法。我建议为包含 xls 的 href 解析 html(因为 OP 想要解析的页面没有提供要下载的 xls 文件的通用格式)。
最好的方法是 BeautifulSoup:
pip install bs4
from bs4 import BeautifulSoup
import requests
x=requests.get('https://www.britishfencing.com/results-rankings/mens-foil-ranking-archive/')
soup = BeautifulSoup(x.content, 'html.parser')
result = [ xls['href'] for xls in soup.find_all('a', href=True) if 'xls' in xls['href']]
print(result[0])