import requests
import json
import os.path
from bs4 import BeautifulSoup
def save_to_json(content, file_path):
with open(file_path, 'w', encoding='utf-8') as f:
json.dump(content, f, ensure_ascii=False, sort_keys=True, indent=4)
def crawl_and_save_data(url, file_path):
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'lxml')
data = []
for tr in soup.find('tbody').children:
if isinstance(tr, BeautifulSoup.Tag):
tds = tr('td')
data.append({
'序号': tds[0].text,
'名称': tds[1].text,
'地址': tds[2].text,
'类型': tds[3].text,
'状态': tds[4].text,
'更新时间': tds[5].text
})
save_to_json(data, file_path)
if __name__ == '__main__':
base_url = 'http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/'
file_path = 'china_provinces.json'
crawl_and_save_data(base_url, file_path)
这段代码首先定义了一个将内容写入json文件的函数save_to_json
,然后定义了一个爬取网页数据并将其写入json文件的函数crawl_and_save_data
。最后,在__main__
块中调用了crawl_and_save_data
函数来爬取指定的网页并将数据保存到json文件中。这个例子展示了如何将爬取的数据进行结构化处理并保存,为进一步的数据分析和处理打下了基础。