import requests #引入requests库 from bs4 import BeautifulSoup #引入beautifulsoup4 库 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 tr: ts=th.string if ts =='\n': continue list.append(ts) ulist.append(list) def saveGDP(ulist,s): file_name = 'GDP'+s+'.csv' with open(file_name, 'a', errors='ignore', newline='') as f: f_csv = csv.writer(f) f_csv.writerows(ulist) def main(): d s='1960' for i in range(64): 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 17:28:36 浏览: 144
Python与网页爬虫-网络爬虫和自动化
这段代码是Python爬虫程序,主要功能是从指定网站获取全球各国家的年度GDP数据,并将数据保存到CSV文件中。具体实现过程如下:
1. 引入requests库和BeautifulSoup库。
2. 定义get_html函数,用于获取指定网址的html代码。
3. 定义getGDP函数,用于从html代码中提取GDP数据,并将数据存储到ulist列表中。
4. 定义saveGDP函数,用于将ulist列表中的数据存储到CSV文件中。
5. 定义main函数,用于循环爬取指定时间段内的全球各国家年度GDP数据,并将数据存储到CSV文件中。
6. 判断当前模块是否为主模块,如果是,则执行main函数。
需要注意的是,该程序需要在有网络连接的情况下运行,并且可能会因为网站反爬虫机制的存在而出现异常。此外,爬取他人网站信息可能存在法律风险,请谨慎使用。
阅读全文