欢迎光临UUpython
最大、最新、最全的Python代码收集站

爬取生态环境中心每日核辐射检测

这段代码用于从网页上抓取数据,并将数据保存到文本文件中。主要步骤如下:

  1. 发送HTTP请求获取网页内容:
  • 使用requests.get方法发送GET请求,获取指定网页的HTML内容。
  1. 使用XPath解析HTML内容:
  • 使用lxml库的etree.HTML方法将HTML文本解析成HTML树。
  • 使用XPath表达式定位网页中的数据。
  1. 遍历HTML元素获取数据:
  • 使用XPath表达式选中需要抓取的数据元素。
  • 遍历每个元素,提取城市、辐射值和检测时间等数据。
  • 将提取的数据构建成字典,并将字典添加到名为datas的列表中。
  1. 写入数据到文本文件:
  • 打开一个文本文件以写入模式,文件名格式为data_日期.txt
  • 遍历datas列表,将每个数据字典的内容格式化为字符串,并写入文本文件。
  • 使用datetime.datetime.now().strftime("%Y%m%d")获取当前日期作为文件名的一部分。

总体来说,这段代码通过HTTP请求和XPath解析,从指定网页上抓取了数据,然后将数据保存到文本文件中,文件名包括日期信息。

import datetime
import time
 
import requests
from lxml import etree
 
response = requests.get('https://data.rmtc.org.cn/gis/listtype0M.html')
html_parse = etree.HTML(response.text)
lis = html_parse.xpath('//*[@class="datali"]')
datas = []
for li in lis:
    hr_url = li.xpath('.//div[@class="divname"]/a/@href')[0]
    hr_name = (li.xpath('.//div[@class="divname"]/a/text()')[0].replace('\r', '')
               .replace('\n', '')
               .replace('\t', '').strip())
    city = hr_name.split('(')[0]
    time.sleep(0.2)
    response = requests.get(f'https://data.rmtc.org.cn/gis/{hr_url}')
    html_children_parse = etree.HTML(response.text)
    children_lis = html_children_parse.xpath('//*[@class="datali"]')
    for cl in children_lis:
        hr_children_name = (cl.xpath('.//div[@class="divname"]/text()')[0].replace('\r', '')
                            .replace('\n', '')
                            .replace('\t', '').strip())
        hr_children_val = cl.xpath('.//div[@class="divval"]/span[@class="label"]/text()')[0]
        hr_children_time = cl.xpath('.//div[@class="divval"]/span[@class="showtime"]/text()')[0]
        datas.append({'province': city.strip(), 'city': hr_children_name, 'val': hr_children_val, 'check_time': hr_children_time})
    time.sleep(0.2)
 
with open(f'data_{datetime.datetime.now().strftime("%Y%m%d")}.txt', 'wt', encoding='UTF-8') as f:
    for d in datas:
        f.write(f'城市:{d["province"]}-{d["city"]},辐射值:{d["val"]},检测时间:{d["check_time"]}\r\n')
赞(0) 打赏
未经允许不得转载:UUpython » 爬取生态环境中心每日核辐射检测
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!