Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python直接从网站下载CSV_Python_Web Scraping - Fatal编程技术网

使用Python直接从网站下载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

我正在使用下面的代码尝试下载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)
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]
to
csvURL=”https://covid19.who.int“+wc[i2:i+14]
我做了更改,但仍然没有为csv提供正确的信息。我可以在我的计算机上下载该文件。请描述有关该问题的更多详细信息,然后我们可以从那里开始