请将下面代码进行注释 import urllib.request import re import pandas as pd import time def getdata(url): req = urllib.request.Request(url) req.add_header('User-Agent', ' Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') data = urllib.request.urlopen(req).read().decode('utf-8') str1 = str(data) pat = '''<tr> <td>(.?)</td> <td>(.?)</td> <td>(.?)</td> <td>(.?)(.?</td> <td>.?</td> </tr>''' result = re.compile(pat).findall(str1) return result if name == 'main': for i in range(1968, 2020): print('正在收集第%d年数据' % i) rank = [] country = [] zhou = [] total = [] url = 'https://www.kuaiyilicai.com/stats/global/yearly/g_gdp/' + str(i) + '.html' data = getdata(url) for j in range(0, len(data)): rank.append(data[j][0]) country.append(data[j][1]) zhou.append(data[j][2]) total.append(data[j][3]) dataframe = pd.DataFrame({'排名': rank, '国家/地区': country, '所在洲': zhou, 'GDP(美元计)': total}) dataframe.to_csv(str(i) + "年世界gdp排名.csv", index=False, sep=',', encoding="utf_8_sig", mode="a+") print(i, '年数据收集完成') time.sleep(2)
时间: 2024-04-28 16:23:50 浏览: 134
Python urllib.request对象案例解析
5星 · 资源好评率100%
注释是程序员在代码中添加的一些解释,用于说明代码的作用、实现方法、变量含义等等。注释对于代码的阅读和维护非常重要。下面是对这段代码的注释:
```python
# 导入所需模块
import urllib.request
import re
import pandas as pd
import time
# 定义获取数据的函数
def getdata(url):
# 构造请求头,模拟浏览器访问
req = urllib.request.Request(url)
req.add_header('User-Agent', ' Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36')
# 获取数据并解码
data = urllib.request.urlopen(req).read().decode('utf-8')
# 用正则表达式提取所需数据
str1 = str(data)
pat = '''<tr> <td>(.*)</td> <td>(.*)</td> <td>(.*)</td> <td>(.*)(.*)</td> <td>.*</td> </tr>'''
result = re.compile(pat).findall(str1)
return result
# 主函数
if __name__ == '__main__':
# 循环爬取1968年到2019年的数据
for i in range(1968, 2020):
print('正在收集第%d年数据' % i)
# 定义存储数据的四个列表
rank = []
country = []
zhou = []
total = []
# 构造获取数据的网址
url = 'https://www.kuaiyilicai.com/stats/global/yearly/g_gdp/' + str(i) + '.html'
# 调用获取数据的函数获取数据
data = getdata(url)
# 将数据存储到四个列表中
for j in range(0, len(data)):
rank.append(data[j][0])
country.append(data[j][1])
zhou.append(data[j][2])
total.append(data[j][3])
# 将四个列表转换为数据框并存储为csv文件
dataframe = pd.DataFrame({'排名': rank, '国家/地区': country, '所在洲': zhou, 'GDP(美元计)': total})
dataframe.to_csv(str(i) + "年世界gdp排名.csv", index=False, sep=',', encoding="utf_8_sig", mode="a+")
# 输出提示信息
print(i, '年数据收集完成')
# 暂停2秒,避免访问频率过高被封IP
time.sleep(2)
阅读全文