import requests from bs4 import BeautifulSoup import csv def get_html(url): try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: r="fail" return r def getGDP(ulist,html): soup=BeautifulSoup(html,"html.parser") trs=soup.find_all('tr') for tr in trs: list=[] for th in trs: ts=th.string if ts=='\n': continue list.append(ts) ulist.append(list) def saveGDP(ulist,s): flie_name='GRADES'+s+'.csv' with open(file_name,'a',errors='ignore',newline='')as f: f_csv=csv.writer(f) f_csv.writerows(ulist) def main(): s='1960' for i in range(62): unifo=[] url='https://www.kylc.com/stats/global/yearly/g_gdp/'+s+'.html' html=get_html(url) getGDP(unifo,html) saveGDP(unifo,s) s1=int(s) s1=s1+1 s=str(s1) if__name__=="__main__": main()
时间: 2024-02-15 15:28:53 浏览: 25
这段代码是用来抓取全球各国每年的GDP数据,并将其保存为CSV文件的。其中主要包括以下几个函数:
1. get_html(url):用来获取网页内容的函数,通过requests库向目标网页发送请求,获取网页HTML代码。
2. getGDP(ulist,html):用来解析HTML代码,提取GDP数据的函数。通过BeautifulSoup库解析HTML代码,找到所有的<tr>标签,进而找到其中的数据,并将其保存到ulist列表中。
3. saveGDP(ulist,s):用来将提取到的GDP数据保存为CSV文件的函数。通过csv库将数据写入到CSV文件中。
4. main():主函数,用来循环调用getGDP和saveGDP函数,以抓取每年的GDP数据,并保存为CSV文件。
在代码中,还有一些错误需要修正,比如file_name变量名拼写错误,if__name__=="__main__"语句中的下划线应该是两个等号,等等。