使用Python直接从网站下载CSV
我正在使用下面的代码尝试下载csv,但它不起作用,有人能帮我吗使用Python直接从网站下载CSV,python,web-scraping,Python,Web Scraping,我正在使用下面的代码尝试下载csv,但它不起作用,有人能帮我吗 import urllib.request, urllib.error, urllib.parse url = 'https://covid19.who.int/table' csvfile = r"C:/Users/RONEYGALAN/Desktop/OMS/Covid.csv" #open main page response = urllib.request.urlopen(url) webConte
import urllib.request, urllib.error, urllib.parse
url = 'https://covid19.who.int/table'
csvfile = r"C:/Users/RONEYGALAN/Desktop/OMS/Covid.csv"
#open main page
response = urllib.request.urlopen(url)
webContent = response.read()
wc = str(webContent)
#get csv URL
i = wc.find(r"table-data.csv")
i2 = wc.find("/WHO-COVID-19-global-", i-200)
csvURL = "https://covid19.who.int/table" + wc[i2:i+17]
print(csvURL)
#get csv
csvresp = urllib.request.urlopen(csvURL)
csvdata = str(csvresp.read())
print(len(csvdata), "bytes")
#save csv to file
print("Saving To", csvfile)
f = open(csvfile,"w")
f.write(csvdata.replace(r"\r\n","\n"))
f.close()
如果任何人有任何其他代码建议,请随时发布
这是正在发生的错误,我不知道我是否将正确的参数传递给了函数,但由于这是我第一次使用web scraping,也许我需要一些协作
InvalidURL:URL不能包含控制字符。'/表/WHO-COVID-19-global-table-data.csv“d”(至少找到“”)您的代码在#获取csv URL结果的步骤中出现错误的URL,即https://covid19.who.int/table/WHO-COVID-19-global-table-data.csv“d
。这就是它生成InvalidURL错误的原因
因此,您应该通过更改来删除结尾处的一些冗余字符
csvURL=”https://covid19.who.int/table“+wc[i2:i+17]
到
csvURL=”https://covid19.who.int/table“+wc[i2:i+14]
然后,它将生成正确的格式url
https://covid19.who.int/table/WHO-COVID-19-global-table-data.csv
您能详细说明一下您对此处提供的错误不清楚的地方吗?它看起来不像是i
的结果,i2
和相应的csvURL
正在按照您的期望进行评估-您能否分享print(csvURL)
的结果并确保结果满足您的期望?根据我之前的评论,您是否可以详细说明您不理解的错误消息的具体内容?谢谢,现在它正在保存文件,但它与我手动下载时的方式不同,可能是我遗漏了一些参数?url似乎错误(在位置),更改csvURL="https://covid19.who.int/table“+wc[i2:i+14]
tocsvURL=”https://covid19.who.int“+wc[i2:i+14]
我做了更改,但仍然没有为csv提供正确的信息。我可以在我的计算机上下载该文件。请描述有关该问题的更多详细信息,然后我们可以从那里开始