快捷导航

知晓:全网年份最全-中国环境统计年鉴 1998-2021年2024/1/8

[复制链接]
查看: 9|回复: 0
发表于 2024-1-8 08:32:48 | 显示全部楼层 |阅读模式

  可以使用Python中的Requests和BeautifulSoup库来实现统计年鉴数据的爬取。中国统计年鉴https://www.macrodatas.cn/article/1147472422《中国统计年鉴》是中国国家统计局出版的一本重要的官方统计汇编,每年都会发布。它详细记录了中国过去一年(或特定历史时期)的社会经济数据和信息,包括但不限于人口、劳动力、经济、教育、科技、文化、环境保护等领域。


  首先,我们需要找到目标数据所在的页面的URL。以2019年中国统计年鉴为例,其页面URL为:http://www.stats.gov.cn/tjsj/tjcbw/2019/indexch.htm。

  然后,我们可以使用Requests库来发送请求并获取页面内容:

  ``` python

  import requests

  url='http://www.stats.gov.cn/tjsj/tjcbw/2019/indexch.htm'

  response=requests.get(url)

  content=response.content.decode('utf-8')

  ```

  接着,我们可以使用BeautifulSoup库来解析页面内容,提取我们需要的数据。以获取“全国居民人均可支配收入”数据为例,其数据所在的HTML元素为:

  ``` html

  <td width="23%" height="22" align="center" valign="bottom" bgcolor="#FFFFFF">

  <span class="m1">

  <a href=https://blog.csdn.net/li514006030/article/details/"indexch.htm#8">8</a>

  </span>

  </td>

  <td width="23%" height="22" align="center" valign="bottom" bgcolor="#FFFFFF">

  <span class="m3">全国居民人均可支配收入</span>

  </td>

  <td width="23%" height="22" align="center" valign="bottom" bgcolor="#FFFFFF">

  <span class="m1">2018</span>

  </td>

  <td width="23%" height="22" align="center" valign="bottom" bgcolor="#FFFFFF">

  <span class="m1">30359</span>

  </td>

  ```

  我们可以使用如下代码来提取该数据:

  ``` python

  from bs4 import BeautifulSoup

  soup=BeautifulSoup(content, 'html.parser')

  data_table=soup.find('div', {'class': 'nj_con'})

  for row in data_table.find_all('tr'):

  cols=row.find_all('td')

  if len(cols)==4 and '全国居民人均可支配收入' in cols[1].text:

  year=cols[2].text.strip()

  value=cols[3].text.strip()

  print(f'{year}年全国居民人均可支配收入为{value}元')

  ```

  完整代码如下:

  ``` python

  import requests

  from bs4 import BeautifulSoup

  url='http://www.stats.gov.cn/tjsj/tjcbw/2019/indexch.htm'

  response=requests.get(url)

  content=response.content.decode('utf-8')

  soup=BeautifulSoup(content, 'html.parser')

  data_table=soup.find('div', {'class': 'nj_con'})

  for row in data_table.find_all('tr'):

  cols=row.find_all('td')

  if len(cols)==4 and '全国居民人均可支配收入' in cols[1].text:

  year=cols[2].text.strip()

  value=cols[3].text.strip()

  print(f'{year}年全国居民人均可支配收入为{value}元')

  ```

  输出结果为:

  ```

  2018年全国居民人均可支配收入为30359元

  ```
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

精彩推荐

苍茫之海

  • 反馈建议:麻烦到管理处反馈
  • 我的电话:这个不能给
  • 工作时间:周一到周五

关于我们

云服务支持

精彩文章,快速检索

关注我们

Copyright 苍茫之海  Powered by©  技术支持:飛    ( 闽ICP备2023009016号-2 )