Python爬虫抓取气象_bs4+定时器+mysql+对象_一蓑烟雨任平生

本文主要是介绍Python爬虫抓取气象_bs4+定时器+mysql+对象_一蓑烟雨任平生,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 说啥呢?直接扔代码吧
    • 看不懂的话你细品 留言也可以 进群也可以
  • 总结


前言

麻雀虽小 五脏俱全 这篇爬虫文章涉及的技术不少

bs4抓取数据 (之前一直用xpath感觉一种东西吃多了会腻)
定时器(一次执行终身执行 懒人必备)
mysql(数据库 存数据的地方)
对象(面向对象编程)


说啥呢?直接扔代码吧

看不懂的话你细品 留言也可以 进群也可以

# -*- coding: utf-8 -*-
"""
# @Time : 2021/4/6 10:10 # @Author : 一蓑烟雨任平生# @File : 天气.py # @Software: PyCharm
"""
import datetime
import threading
from datetime import dateimport pymysql
import requests
from bs4 import BeautifulSoupconn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='feifei', charset='utf8')
cur = conn.cursor()
print("数据库已连接")class ZhangZhang:def __init__(self):self.head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0'}self.babaUrl = 'http://www.agri.cn/qxny/nqyw'def getTime(self):# 获取现在时间now_time = datetime.datetime.now()# 获取明天时间next_time = now_time + datetime.timedelta(days=+1)next_year = next_time.date().yearnext_month = next_time.date().monthnext_day = next_time.date().day# 获取明天3点时间next_time = datetime.datetime.strptime(str(next_year) + "-" + str(next_month) + "-" + str(next_day) + " 03:00:00","%Y-%m-%d %H:%M:%S")timer_start_time = (next_time - now_time).total_seconds()print(timer_start_time)return timer_start_time;def get_all_url(self):ee = []page_one = self.bs_Url('http://www.agri.cn/qxny/nqyw/index.htm')bb = [page_one.find('td', class_='bk_7').find_all("table")[i] for i in range(1, 8, 2)]time4 = date.today() - datetime.timedelta(days=4)for i in bb:cc = i.find("td", class_='hui_14').text[1:-1]if str(time4) == cc:dd = i.find('a', class_='link03')['href'][1:]ee.append(dd)ff = [self.babaUrl + fp for fp in ee]return ffdef get_info(self, list):for i in list:pic = i.split('/t')[0] + '/'shuju = self.bs_Url(i)title = shuju.find('td', class_='hui_15_cu').textpublish_time = shuju.find('td', class_='hui_12-12').text.split(":")[1][:10]source = shuju.find('td', class_='hui_12-12').text.split(":")[3]content = str(shuju.find('div', class_='TRS_Editor'))content = content.replace("./", pic)sql = "insert into weather_info(title,publish_time,source,content) VALUES (%s,%s,%s,%s)"cur.execute(sql, (title, publish_time, source, content))conn.commit()cur.close()conn.close()def bs_Url(self, wangzhi):yy = requests.get(wangzhi, self.head).contentpage_info = BeautifulSoup(yy, "html.parser")return page_infodef run(self):conn.ping(reconnect=True)print("------爬虫程序开始------")# 获取今日Url然后详情self.get_info(self.get_all_url());# 获取信息timer_start_time = self.getTime();timer = threading.Timer(timer_start_time, self.run)timer.start()if __name__ == '__main__':ZhangZhang().run()

总结

问:楼主,你写代码命名怎么aa BB cc dd啊,好不规范啊

答:我的代码风格就是ABCDEFG,英语不好没时间搜百度,没给你搞成ZXCVBNM就已经很好了吧?

QQ群,对于刚学爬虫的小白可以来群里交流,我也是小白,只是在通往大佬的路上一直跌到,导致现在的鼻青脸肿,成了大胖子

在这里插入图片描述
在这里插入图片描述

这篇关于Python爬虫抓取气象_bs4+定时器+mysql+对象_一蓑烟雨任平生的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/516992

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

MySQL字符串转数值的方法全解析

《MySQL字符串转数值的方法全解析》在MySQL开发中,字符串与数值的转换是高频操作,本文从隐式转换原理、显式转换方法、典型场景案例、风险防控四个维度系统梳理,助您精准掌握这一核心技能,需要的朋友可... 目录一、隐式转换:自动但需警惕的&ld编程quo;双刃剑”二、显式转换:三大核心方法详解三、典型场景

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav