我想使用Python从网页中提取CSV文件。网页抓取

时间:2020-07-21 14:34:52

标签: python csv xlsx

我要从此网页获取.csv文件或.xlsx文件。我考虑过使用网络抓取,使用beautifulsoup,但这似乎效率很低。我希望能够编写一个函数,当调用此网页时,代码将找到CSV文件的链接,并将CSV文件返回给我。

这样一来,我就可以对CSV文件进行分析了。

请有人在这里帮助我!

以下是链接:https://data.london.gov.uk/dataset/recorded_crime_rates

1 个答案:

答案 0 :(得分:0)

使用 urllib 库获取网页的来源。

这似乎可行:

import urllib.request, urllib.error, urllib.parse

url = 'https://data.london.gov.uk/dataset/recorded_crime_rates'
csvfile = r"C:\Tmp\CrimeRates.csv"

#open main page
response = urllib.request.urlopen(url)
webContent = response.read()
wc = str(webContent)

#get csv URL
i = wc.find(r"crime%20rates.csv")
i2 = wc.find("/download/recorded_crime_rates", i-200)
csvURL = "https://data.london.gov.uk" + 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()