用Python爬取http://www.stats.gov.cn/sj/tjgb/rkpcgb/qgrkpcgb/202302/t20230206_1902003.html的数据并生成可视化图片文件
时间: 2023-08-12 14:06:27 浏览: 221
好的,这是一个比较具体的问题,需要一步步来实现。首先我们需要用 Python 爬取这个网页中的数据,可以使用 Requests 库来发送 GET 请求获取 HTML 页面,然后使用 Beautiful Soup 库来解析 HTML 页面中的表格数据。
以下是代码示例:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = "http://www.stats.gov.cn/sj/tjgb/rkpcgb/qgrkpcgb/202302/t20230206_1902003.html"
r = requests.get(url)
r.encoding = 'utf-8'
soup = BeautifulSoup(r.text, 'html.parser')
table = soup.find('table', {'class': 'MsoNormalTable'})
rows = table.findAll('tr')
data = []
for row in rows[2:]:
cols = row.find_all('td')
cols = [col.text.strip() for col in cols]
data.append(cols)
df = pd.DataFrame(data, columns=['地区', '年末总人口(万人)', '城镇人口(万人)', '乡村人口(万人)', '人口出生率(‰)', '人口死亡率(‰)', '自然增长率(‰)'])
print(df)
```
接下来我们需要使用 Matplotlib 库来生成可视化图片文件。这里我们可以使用柱状图来展示不同地区的人口数据。
以下是代码示例:
```python
import matplotlib.pyplot as plt
df = df.set_index('地区')
df[['年末总人口(万人)', '城镇人口(万人)', '乡村人口(万人)']].plot(kind='bar')
plt.title('全国分地区常住人口统计')
plt.xlabel('地区')
plt.ylabel('人口(万人)')
plt.show()
```
最后运行代码即可生成可视化图片文件。
阅读全文