爬取国家数据
Posted On 2017-08-07
网站链接如下:http://data.stats.gov.cn/search.htm?s=发电量%20上海%202017
使用Chrome的开发者模式很容易就找到数据接口:

参数:

直接访问:http://data.stats.gov.cn/search.htm?s=发电量+上海+2017&m=searchdata&p=0

可以看到pagecount一项,即总页数。乱码是编码问题,可以忽略。
理顺了以上,很快写出代码如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#coding:utf-8 import json import time import codecs import requests result = [] payload = {"s": u"上海 2013 发电量", "m": "searchdata", "p": "0"} r = requests.get("http://data.stats.gov.cn/search.htm", payload) start_data = json.loads(r.text) result += start_data["result"] page_count = int(start_data["pagecount"]) for page in xrange(1, page_count): payload["p"] = str(page) r = requests.get("http://data.stats.gov.cn/search.htm", payload) data = json.loads(r.text) result += data["result"] time.sleep(1) with codecs.open("result.json", 'wb', 'utf-8') as f: f.write(json.dumps(result, sort_keys = True, indent = 4, ensure_ascii = False)) |