Python爬虫案例六:抓取某个地区某月份天气数据并保存到mysql数据库中

embedded/2024/12/22 20:47:04/
测试链接:https://lishi.tianqi.com/guangzhou/202003.html

源码:

import requests, pymysql
from lxml import etree
class ThSpider(object):def __init__(self):# 初始化self.month_list = ['202101', '202102', '202103', '202104', '202105', '202106', '202107', '202108', '202109', '202110', '202111', '202112', '202201', '202202']# 链接数据库self.cz = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='root',db='基本操作',charset='utf8')# 创建游标self.kit = self.cz.cursor()# 创建数据库table_sql = \'''create table if not exists 天气数据 (日期 varchar (50),最高气温 varchar (50),最低气温 varchar (50),天气 varchar (50),风向 varchar (50));'''self.kit.execute(table_sql)def request_start_url(self):# 发送请求 + 得到响应for month in self.month_list:start_url = 'https://lishi.tianqi.com/shanghai/{}.html'.format(month)self.headers = {'Cookie': 'UserId=17209281674394559; Hm_lvt_7c50c7060f1f743bccf8c150a646e90a=1720928176; HMACCOUNT=66A8254591DC78E3; Hm_lpvt_7c50c7060f1f743bccf8c150a646e90a=1720941400','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'}response = requests.get(start_url, headers=self.headers).textself.parse_response(response)self.commit_close()  # 也可在此处调用提交函数  请求一个月份,解析一个月份,然后提交数据库def parse_response(self, response):# 解析响应 + 得到字段A = etree.HTML(response)li_list = A.xpath('//ul[@class="thrui"]/li')for li in li_list:# 日期rq = li.xpath('./div[1]/text()')[0]# 最高气温gw = li.xpath('./div[2]/text()')[0]# 最低气温dw = li.xpath('./div[3]/text()')[0]# 天气tq = li.xpath('./div[4]/text()')[0]# 风向fx = li.xpath('./div[5]/text()')[0]# print(rq, gw, dw, tq, fx)insert_sql = \'''insert into 天气数据 values ("{}", "{}", "{}", "{}", "{}")'''.format(rq, gw, dw, tq, fx)self.kit.execute(insert_sql)print('ok --{}'.format(rq))def commit_close(self):# 数据库的提交和关闭self.kit.close()self.cz.commit()self.cz.close()def main(self):self.request_start_url()# self.commit_close()if __name__ == '__main__':th = ThSpider()th.main()

运行效果:

 


http://www.ppmy.cn/embedded/111476.html

相关文章

快速完成论文初稿写作的ChatGPT提示词分享

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 随着人工智能技术的迅速发展,ChatGPT已经成为学术写作中不可忽视的工具。它不仅能帮助研究者提高写作效率,还能在初稿撰写过程中提供结构化的建议和内容生成支持…

llama神经网络的结构,llama-3-8b.layers=32 llama-3-70b.layers=80; 2000汉字举例说明

AI大模型全套学习资料 “最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。 这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。 我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成…

SpringSecurity原理解析(六):SecurityConfigurer 解析

1、SecurityConfigurer SecurityConfigurer 在 Spring Security 中是一个非常重要的接口,观察HttpSecurity 中的很多 方法可以发现,SpringSecurity 中的每一个过滤器都是通过 xxxConfigurer 来进行配置的,而 这些 xxxConfigurer 其实都是 Sec…

暑假第四周——天气预报仿写

iOS学习 前言简介首页简单的网络申请 搜索功能添加功能 详情总结 前言 作为最后一个项目,暑期培训也迎来了尾声。这个项目中初次尝试了网络申请,在iOS学习中迈出重要一步。 简介 该项目主要有搜索,预览,添加,详情几个…

Unity Timeline

数据存储 TimeLine和Animation一样也是资源,以.playable的格式存储,可以通过Playable Director进行加载播放。 Playable具有以下优势: 结构简单; 运行时创建、添加和删除; 更加灵活,可以直接控制动画的各种…

centos/kali 操作不同(两处)

二进制包安装 centos7: rpm包 rpm -ivhkali: deban包 dpkg -i deb包 网络镜像源配置 centos7: 配置文件路径 /etc/yum.repos.d 配置镜像源,会生成 .repo为后缀的文件,文件内容格式: [后缀.repo四部----------------…

HTTPS安全吗?3个理由告诉你HTTPS为什么是安全的!

从保护银行网站到在线购物期间保护数据,HTTPS协议在互联网上随处可见。例如当您访问racent.com时,你会发现你是通过安全加密链接来访问网站的。这种安全链接会触发浏览器的网址栏旁边显示安全挂锁图标。 但HTTPS真的安全吗? 如果你想快速得到答案&…

blender软件下载地址,blender哪个版本好用

​blender软件下载 不废话,blender软件下载直接点:https://download.blender.org/release/ blender最新稳定版:Blender 4.2.1 LTS 【渲染101云渲染】:如果您希望使用Blender的最新功能,并且愿意接受可能存在的一些小…