通过Pyhton的网站下载CSV文件

bvjxkvbb  于 8个月前  发布在  其他
关注(0)|答案(2)|浏览(107)

我想通过python自动下载this网站提供的csv文件。
https://www.bankofengland.co.uk/boeapps/database/Bank-Rate.asp
我正在尝试通常的方法建议here以及这个脚本:

base_url = 'https://www.bankofengland.co.uk/boeapps/database/Bank-Rate.asp#'
# 1. Download data
orig_m = (pd.read_csv(f'{base_url}.csv').dropna(how='all'))

字符串
到目前为止还没有什么真正有效的。有人能帮帮忙吗?

00jrzges

00jrzges1#

直接从这个网站下载.csv文件是不可能的。每次你下载它的时候,他们似乎都会生成一个指向该文件的新链接。
您可以通过python/selenium打开网站,然后下载文件。由于数据也可以在网站本身获得,因此更快的解决方案是使用python/requests下载网站,并在python/pandas的帮助下解析网站。
这里有一个基本的例子。

import requests
import pandas as pd

response = requests.get("https://www.bankofengland.co.uk/boeapps/database/Bank-Rate.asp#").content
df_list = pd.read_html(response)
df = df_list[0]
print(df)
df.to_csv('my data.csv')

字符串

f4t66c6m

f4t66c6m2#

你可以这样做它下载文件在同一个文件夹.你可以睡几秒钟,以确保到文件是下载,然后你可以阅读.

from selenium import webdriver
driver = webdriver.Chrome()
url = 'Your url'
driver.get(url)
driver.find_elements_by_xpath("//*[@id="stats-table_wrapper"]/div[1]/a[2]").click()

字符串
如果它不起作用,或者你想下载其他文件,请将“//*[@id=“stats-table_wrapper”]/div[1]/a[2]”替换为其他xpath,你可以通过以下方式选择x路径:

  • 右键单击所需的元素,然后单击检查
  • 检查的元素将在Chrome调试器中突出显示。右键单击
  • 该元素和一堆选项将打开

相关问题