使用python爬取中国地震局网站的地震数据

您所在的位置:网站首页 中国地震数据分析网站 使用python爬取中国地震局网站的地震数据

使用python爬取中国地震局网站的地震数据

2024-07-11 14:57| 来源: 网络整理| 查看: 265

0.简介:以python爬取的地震数据作为动态数据源,可利用ArcGIS二次开发设计一个地震监测分析系统。篇章有限,这里重点记录爬虫部分。

1.数据来源:

 

 

 

2.示例代码如下:

# -*- coding: utf-8 -*- """ Created on Thur Sep 19 08:31:07 2019 @author: L JL """ import requests import urllib import json import csv from bs4 import BeautifulSoup from lxml import etree #print(soup) def get_one_page(i): try: url = 'http://ditu.92cha.com/dizhen.php?page= %s &dizhen_ly=china&dizhen_zjs=5&dizhen_zje=10&dizhen_riqis=2016-01-01&dizhen_riqie=2019-12-30' % (str(i)) head = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"} data = requests.get(url,headers = head) #print(data) return data except RequestException: print('爬取失败') def parse_one_page(html,ulist): soup = BeautifulSoup(html.text,'lxml') trs = soup.find_all('tr') i = 0 for tr in trs: if i == 0: ##效率低 待改进 i += 1 else: ui = [] for td in tr: #print(td.string) ui.append(td.string) ulist.append(ui) i = i + 1 def save_contents(ulist): with open(r'data0.csv', 'w', encoding='utf-8-sig', newline='') as f: csv.writer(f).writerow(['发震时间', '震级', '经度', '维度', '深度(km)', '位置']) for i in range(len(ulist)): csv.writer(f).writerow([ulist[i][1],ulist[i][3],ulist[i][5],ulist[i][7],ulist[i][9],ulist[i][11]]) def main(page): ulist = [] for i in range(1,page): html = get_one_page(i) parse_one_page(html,ulist) save_contents(ulist) print('结束') if __name__ == '__main__': main(21) ##需爬取的页数

 

3.爬取结果如下图所示:

 

4.方案设计:

 

 

 

 

 ---------------------------------------------------------2019.9--------------------------------------------------------------------



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3