一.设计方案
爬虫名称:爬取天气情况并进行可视化
爬虫内容:爬取2020年3月份莆田市天气情况
爬虫设计:目标url,获取网页源代码,数据提取,数据保存
二.页面的结构特征分析(网址:http://www.tianqihoubao.com/lishi/putian/month/202003.html)
结构特质分析:源文件为html结构
页面解析以及节点查找
找到节点为
三.爬虫程序
数据爬取与采集
import requests
from bs4 import BeautifulSoup
# 目标url
url = ' http://www.tianqihoubao.com/lishi/putian/month/202003.html '
# 获取网页源代码
resp = requests.get(url)
html = resp.content.decode(' gbk ' )
# 数据提取
soup = BeautifulSoup(html,' html.parser ' )
tr_list = soup.find_all(' tr ' )
print (tr_list)
结果如图(部分截取)
数据处理
dates,conditions,temp = [],[],[]
for data in tr_list[1:]:
sub_data = data.text.split()
dates.append(sub_data[0])
conditions.append( '' .join(sub_data[1:3]))
temp.append( '' .join(sub_data[3:6]))
_data = pd.DataFrame()
_data[ ' 日期 ' ] = dates
_data[ ' 天气情况 ' ] = conditions
_data[ ' 气温 ' ] = temp
print (_data)
结果如图
数据可视化
# 数据可视化
from matplotlib import pyplot as plt
# 显示中文
plt.rcParams[' font.sans-serif ' ] = [' SimHei ' ]
# 显示负号
plt.rcParams[' axes.unicode_minus ' ] = False
data = pd.read_csv(' putian.csv ' )
# 数据处理
data[' 最高气温 ' ] = data[' 气温 ' ].str.split(' / ' ,expand=True)[0]
data[ ' 最低气温 ' ] = data[' 气温 ' ].str.split(' / ' ,expand=True)[1]
data[ ' 最高气温 ' ] = data[' 最高气温 ' ].map(lambda x:int(x.replace(' ℃ ' ,'' )))
data[ ' 最低气温 ' ] = data[' 最低气温 ' ].map(lambda x:int(x.replace(' ℃ ' ,'' )))
dates = data[' 日期 ' ]
highs = data[' 最高气温 ' ]
lows = data[' 最低气温 ' ]
# 画图
fig = plt.figure(dpi=128,figsize=(10,6))
plt.plot(dates,highs, c =' red ' ,alpha=0.5)
plt.plot(dates,lows, c =' blue ' ,alpha=0.5)
plt.fill_between(dates,highs,lows,facecolor =' blue ' ,alpha=0.2)
# 图表格式
# 设置图形格式
plt.title(' 2020年三月份天气 ' ,fontsize=24)
plt.xlabel( '' ,fontsize=6)
fig.autofmt_xdate() # 绘制斜的日期标签,避免重叠
plt.ylabel(' 气温 ' ,fontsize=12)
plt.tick_params(axis =' both ' ,which=' major ' ,labelsize=10)
# 修改刻度
plt.xticks(dates[::1])
# 显示折线图
plt.show()
结果如图
最高气温与最低气温的相关系数及两者的散点图与回归方程
相关系数
# 绘制散点图以及回归方程
# 计算相关系数
X = highs
Y = lows
X.corr(Y)
结果如图
散点图
# 散点图
plt.title(' 2020年三月份最高温与最低温散点图 ' ,fontsize=20)
x = highs
y = lows
plt.xlabel( ' 最高温度 ' ,fontsize=12)
plt.ylabel( ' 最低温度 ' ,fontsize=12)
plt.scatter(x,y,color =' purple ' ,linewidth=2)
plt.show()
结果如图
回归方程
# 回归方程
import numpy as np
from scipy.optimize import leastsq
X = np.array(highs)
Y = np.array(lows)
def func(params, x):
k, b = params
return k*x+b
def error(params,x,y):
return func(params,x) - y
def main():
plt.figure(figsize =(10,6))
p0 = [0,0]
Para = leastsq(error, p0, args=(X,Y))
k, b = Para[0]
print (" k={:.2f},b={:.2f} " .format(k,b))
plt.scatter(X,Y,color =' green ' ,label=' 样本数据 ' ,linewidth=2)
# 画拟合曲线
x = np.linspace(1,30,30)
y = k*x+b
plt.plot(x,y,color =' red ' ,label=' 拟合曲线 ' ,linewidth=2)
plt.title( ' 2020年三月分最低温与最高温光系图 ' )
plt.grid()
plt.legend()
plt.show()
main()
结果如图
数据持久化
fig = plt.gcf()
plt.show()
fig.savefig( ' putian.png ' , dpi=100)
结果如图
整理后的完整代码
1 import requests
2 import pandas as pd
3 from bs4 import BeautifulSoup
4 # 目标url
5 url = ' http://www.tianqihoubao.com/lishi/putian/month/202003.html '
6 # 获取网页源代码
7 resp = requests.get(url)
8 html = resp.content.decode(' gbk ' )
9 # 数据提取
10 soup = BeautifulSoup(html,' html.parser ' )
11 tr_list = soup.find_all(' tr ' )
12
13 dates,conditions,temp = [],[],[]
14 for data in tr_list[1:]:
15 sub_data = data.text.split()
16 dates.append(sub_data[0])
17 conditions.append('' .join(sub_data[1:3]))
18 temp.append('' .join(sub_data[3:6]))
19 _data = pd.DataFrame()
20 _data[' 日期 ' ] = dates
21 _data[' 天气情况 ' ] = conditions
22 _data[' 气温 ' ] = temp
23 _data.to_csv(' putian.csv ' ,index=False,encoding=' utf-8 ' )# 去掉索引以及避免乱码
24
25 # 数据可视化
26 from matplotlib import pyplot as plt
27 # 显示中文
28 plt.rcParams[' font.sans-serif ' ] = [' SimHei ' ]
29 # 显示负号
30 plt.rcParams[' axes.unicode_minus ' ] = False
31 data = pd.read_csv(' putian.csv ' )
32 # 数据处理
33 data[' 最高气温 ' ] = data[' 气温 ' ].str.split(' / ' ,expand=True)[0]
34 data[' 最低气温 ' ] = data[' 气温 ' ].str.split(' / ' ,expand=True)[1]
35 data[' 最高气温 ' ] = data[' 最高气温 ' ].map(lambda x:int(x.replace(' ℃ ' ,'' )))
36 data[' 最低气温 ' ] = data[' 最低气温 ' ].map(lambda x:int(x.replace(' ℃ ' ,'' )))
37
38 dates = data[' 日期 ' ]
39 highs = data[' 最高气温 ' ]
40 lows = data[' 最低气温 ' ]
41
42 # 画图
43 fig = plt.figure(dpi=128,figsize=(10,6))
44
45 plt.plot(dates,highs, c=' red ' ,alpha=0.5)
46 plt.plot(dates,lows, c=' blue ' ,alpha=0.5)
47
48 plt.fill_between(dates,highs,lows,facecolor=' blue ' ,alpha=0.2)
49
50 # 图表格式
51 # 设置图形格式
52 plt.title(' 2020年三月份天气 ' ,fontsize=24)
53 plt.xlabel('' ,fontsize=6)
54 fig.autofmt_xdate() # 绘制斜的日期标签,避免重叠
55 plt.ylabel(' 气温 ' ,fontsize=12)
56 plt.tick_params(axis=' both ' ,which=' major ' ,labelsize=10)
57
58 # 修改刻度
59 plt.xticks(dates[::1])
60
61 # 显示折线图
62 plt.show()
63
64 # 绘制散点图以及回归方程
65 # 计算相关系数
66 x = highs
67 y = lows
68 x.corr(y)
69
70 # 散点图
71 plt.title(' 2020年三月份最高温与最低温散点图 ' ,fontsize=20)
72 x = highs
73 y = lows
74 plt.xlabel(' 最高温度 ' ,fontsize=12)
75 plt.ylabel(' 最低温度 ' ,fontsize=12)
76 plt.scatter(x,y,color=' purple ' ,linewidth=2)
77 plt.show()
78
79 # 回归方程
80 import numpy as np
81 from scipy.optimize import leastsq
82 X = np.array(highs)
83 Y = np.array(lows)
84 def func(params, x):
85 k, b = params
86 return k*x+b
87 def error(params,x,y):
88 return func(params,x) - y
89 def main():
90 plt.figure(figsize=(10,6))
91 p0 = [0,0]
92 Para = leastsq(error, p0, args=(X,Y))
93 k, b = Para[0]
94 print (" k={:.2f},b={:.2f} " .format(k,b))
95 plt.scatter(X,Y,color=' green ' ,label=' 样本数据 ' ,linewidth=2)
96 # 画拟合曲线
97 x = np.linspace(1,30,30)
98 y = k*x+b
99 plt.plot(x,y,color=' red ' ,label=' 拟合曲线 ' ,linewidth=2)
100 plt.title(' 2020年三月分最低温与最高温光系图 ' )
101 plt.grid()
102 plt.legend()
103 plt.show()
104 main()
105
106 # 数据持久化
107 fig = plt.gcf()
108 plt.show()
109 fig.savefig(' putian.png ' , dpi=100)
完整运行结果如图
四.结论
1.2020年3月份莆田每日温差较大,且呈现出逐渐上升趋势,每日最高温度与最低温度相关性也较大,且进行数据可视化后可以更为直观明了的观察,而三月份最低温度也在10摄氏度左右,可以看出是一个很适合居住的城市。
2.本次程序设计任务,我选择的是爬取天气后报网,课题是爬取3月份的天气情况,并不是天气预报,对于这个网址的爬取相对简单,首先它是一个静态网页,其次节点也相当好找,而且爬虫部分也不需要伪装,可以说是一个相对简单的课题。但是不可否认的是,在程序设计过程中出现了较多问题,如基础不扎实,一部分报错无法看懂,在数据处理时将列表改为整形数据时遇到了困难,进行了大量尝试才最终成功,又如在数据可视化过程中遇到了纵坐标数据出现乱序,而找不出原因,又进行了大量的尝试,再如最后阶段的数据持久化,初看认为很简单,却也让我大费脑筋,更让我认识的自己的基本功之不扎实,但相较于上一次作业而言,完成度相对较高,基本完成了任务目标。
以上。
你可能感兴趣的:(Python爬取天气情况)
2025年全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!
白帽安全-黑客4148
安全 web安全 网络 网络安全 CTF
目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15天)4.3、后期五、CTF学习资源5.1、CTF赛题复现平台5.
2025年全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!
白帽安全-黑客4148
网络安全 web安全 linux 密码学 CTF
目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、SQL注入(7-8天)2、文件上传(7-8天)3、其他漏洞(14-15天)4.3、后期五、CTF学习资源5.1、CTF赛题复现平台5.
基于python深度学习遥感影像地物分类与目标识别、分割实践技术应用
xiao5kou4chang6kai4
深度学习 遥感 勘测 python 深度学习 分类
专题一:深度学习发展与机器学习深度学习的历史发展过程机器学习,深度学习等任务的基本处理流程梯度下降算法讲解不同初始化,学习率对梯度下降算法的实例分析从机器学习到深度学习算法专题二深度卷积网络、卷积神经网络、卷积运算的基本原理池化操作,全连接层,以及分类器的作用BP反向传播算法的理解一个简单CNN模型代码理解特征图,卷积核可视化分析专题三TensorFlow与keras介绍与入门TensorFlow
python 快速实现链接转 word 文档
嘿嘿潶黑黑
python word
python快速实现链接转word文档演示代码展示最后演示代码展示fromnewspaperimportArticlefromdocximportDocumentfromdocx.sharedimportPt,RGBColorfromdocx.enum.styleimportWD_STYLE_TYPEfromdocx.oxml.nsimportqn#tkinterGUIimporttkintera
Python入门笔记
「已注销」
计算机
文章目录第0周课程导学第1周Python基本语法元素保留字数据类型语句与函数输入函数第2周Python基本图形绘制turtle库绝对坐标海龟坐标turtle角度坐标体系RGB色彩体系画笔控制函数运动控制函数方向控制函数循环语句第3周基本数据类型整型浮点数科学计数法复数类型数值运算操作符二元操作符有对应的增强赋值操作符数值运算函数字符串类型的表示字符串切片字符串类型及操作字符串类型格式化time库时
pythonxml模块高级用法_Python minidom模块用法示例【DOM写入和解析XML】
Lucy-露西娅
pythonxml模块高级用法
本文实例讲述了Pythonminidom模块用法。分享给大家供大家参考,具体如下:一、DOM写XML文件#-*-coding:utf-8-*-#!python3#导入minidomfromxml.domimportminidom#1.创建DOM树对象dom=minidom.Document()#2.创建根节点。每次都要用DOM对象来创建任何节点。root_node=dom.createElemen
React 渲染 Flash 接口数据
ox0080
# 北漂+滴滴出行 VIP 激励 Web react.js 前端 前端框架
1.后端Python代码使用Flask创建多个接口,每个接口返回不同的数据,并使用自定义装饰器来绑定路由。代码:#app.pyfromflaskimportFlask,jsonifyapp=Flask(__name__)defapi_route(route,methods=['GET']):"""自定义装饰器,用于将函数与HTTP路由绑定"""defdecorator(func):app.rout
LQB---基础练习---十六进制转八进制
「已注销」
# LQB LQB
试题基础练习十六进制转八进制资源限制内存限制:512.0MBC/C++时间限制:1.0sJava时间限制:3.0sPython时间限制:5.0s问题描述给定n个十六进制正整数,输出它们对应的八进制数。输入格式输入的第一行为一个正整数n(1<=n<=10)。接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式输出n行,每行为
【2025年】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!
网安詹姆斯
web安全 CTF 网络安全大赛 python linux
【2025年】全国CTF夺旗赛-从零基础入门到竞赛,看这一篇就稳了!基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包目录一、CTF简介二、CTF竞赛模式三、CTF各大题型简介四、CTF学习路线4.1、初期1、html+css+js(2-3天)2、apache+php(4-5天)3、mysql(2-3天)4、python(2-3天)5、burpsuite(1-2天)4.2、中期1、S
机器学习·文本数据读写处理
AAA顶置摸鱼
python 深度学习 机器学习 人工智能 数据处理
前言在自然语言处理的第一步,需要面对的是各种各样以不同形式表现的文本数据,比如,txt、Excel中的表格数据,还有无法直接打开的pkl文件等。针对这些不同类型的数据,可以基于Python中的基本功能函数或者调用某些库进行读写以及作一些基本的处理。一、文本数据读写方法1.读写TXT文件读取方法:read():读取整个文件,返回字符串。readline():逐行读取,返回字符串。readlines(
LQB(4)-python-DFS搜索
AAA顶置摸鱼
蓝桥杯python组 深度优先 算法 python 蓝桥杯
前言DFS即深度优先搜索(Depth-FirstSearch),是一种用于遍历或搜索树或图的算法,有三种核心的应用场景(基础遍历、回溯、剪枝)。一、DFS-基础遍历1.核心原理深度优先搜索(DFS)是一种遍历或搜索树/图的算法,优先沿着一条路径尽可能深入,直到无法继续再回溯。实现方式:递归:隐式利用系统调用栈。栈模拟:显式使用栈数据结构。2.代码实现(1)递归实现(树结构)classTreeNod
Python中LLM的知识图谱构建:动态更新与推理
二进制独立开发
GenAI与Python 非纯粹GenAI python 知识图谱 开发语言 自然语言处理 人工智能 分布式 机器学习
文章目录引言1.知识图谱的基本概念1.1知识图谱的定义1.2知识图谱的构建流程2.利用LLM进行知识抽取2.1实体识别2.2关系抽取2.3属性抽取3.知识融合3.1实体对齐3.2冲突消解4.知识存储5.知识推理5.1规则推理5.2基于LLM的推理6.动态更新6.1增量更新6.2实时更新7.结论引言随着人工智能技术的飞速发展,知识图谱(KnowledgeGraph,KG)作为一种结构化的知识表示方法
Python's SQLAlchemy and Object-Relational Mapping
zhanglizhuo
Python
Acommontaskwhenprogramminganywebserviceistheconstructionofasoliddatabasebackend.Inthepast,programmerswouldwriterawSQLstatements,passthemtothedatabaseengineandparsethereturnedresultsasanormalarrayofrec
Jira,一个强大灵活的项目和任务管理工具 Python 库
图灵学者
python精华 jira python 开发语言
目录01初识Jira为什么选择Jira?02安装与配置安装jira库配置Jira访问获取APItoken:配置Python环境:03基本操作创建项目创建任务查询任务更新任务删除任务04高级操作处理子任务搜索任务添加附件评论任务05实战案例自动化创建与分配任务自动生成项目报告06结语01初识JiraJira是Atlassian公司开发的一款项目和任务管理工具。它广泛应用于软件开发、IT支持、营销等各
使用LlamaIndex查询 MongoDB 数据库,并获取 OSS (对象存储服务) 上的 PDF 文件,最终用Langchain搭建应用
朴拙Python交易猿
数据库 mongodb pdf
使用LlamaIndex查询MongoDB数据库,并获取OSS(对象存储服务)上的PDF文件,然后利用Langchain搭建应用,涉及多个步骤。下面我们将详细介绍如何将这些步骤结合起来,构建一个系统:1.环境准备首先,确保你已经安装了以下Python库:pipinstallllama_indexpymongolangchainopenaiboto3pdfplumberpymongo:MongoDB
python 连接 jira
我就是我是好孩子啊
python jira 开发语言
Python连接到Jira实例、登录、查询、修改和创建bug首先,你需要安装jiraPython库pip3installjira连接到Jira并登录fromjiraimportJIRAfromjira.exceptionsimportJIRAError#Jira服务器地址,用户名和密码jira_server='https://your-jira-server.com'jira_user='your
python调用接口返回401,带有Python的Jira API在有效凭据上返回错误401
weixin_39743369
python调用接口返回401
IamtryingtousetheJirapythonlibrarytodosomequitebasicthings.Evenbeforedoinganything,theconstructorfails.address='https://myaddress.atlassian.net'options={'server':address}un='
[email protected] '#un='my'#alsod
python邮件发送哪个好_(原创)python发送邮件
加勒比考斯
python邮件发送哪个好
这段时间一直在学习flask框架,看到flask扩展中有一个mail插件,所以今天就给大家演示如果发邮件。首先我注册了一个163邮箱,需要开启smtp功能,(网易的电子邮件服务器)。注册好163邮箱,然后开启smtp功能,如下图所示:开启的过程中需要绑定手机。我最终实现的样子是这样的:使用flask搭建了一个web服务器,然后做了一个网页,将收件人,主题,正文填好之后,点击发送,上面会显示发送结果
如何用 python 获取实时的股票数据?_python efinance(2)
元点三
2024年程序员学习 python java linux
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课
如何用 python 获取实时的股票数据?_python efinance,2024年最新pdf面试简历
元点三
2024年程序员学习 python pdf 面试
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课
python中enumerate()函数的用法
neu_张康
python中enumerate()函数的用法enumerate是翻译过来是枚举的意思,看下它的方法原型:enumerate(sequence,start=0),返回一个枚举对象。sequence必须是序列或迭代器iterator,或者支持迭代的对象。enumerate()返回对象的每个元素都是一个元组,每个元组包括两个值,一个是计数,一个是sequence的值,计数是从start开始的,star
【python】懒人福利,通过Python的JIRA库操作JIRA,自动批量提交关闭bug,提高效率
bulabula2022
# CI持续集成 Python jira
简介:Jira是目前比较流行的基于Java架构的管理系统(Atlassian公司支持),有开源代码,方便做二次开发(可扩展性)。Jira是一款功能非常强大的管理工具,广泛的用来缺陷跟踪、用例管理、需求收集、任务跟踪、工时管理、项目计划管理等工作领域。python有支持操作Jira的第三方包,方便自定义一些自动化操作。需要安装jira库:pipinstalljiraJira认证fromjiraimp
使用Python获取在线股票交易网站的实时交易数据
嵌入式开发项目
2025年爬虫精通专栏 python 开发语言 爬虫
目录步骤1:选择股票交易网站步骤2:使用requests库发送HTTP请求步骤3:解析HTML内容步骤4:提取实时交易数据步骤5:存储和使用数据在金融市场中,实时交易数据对于投资者来说具有重要的价值。实时的股票价格、交易量和其他市场指标可以帮助投资者做出更准确的决策,同时也是进行金融分析和建模的重要数据源。在本篇博客中,我们将学习如何使用Python获取在线股票交易网站的实时交易数据。在开始之前,
【python】连接Jira获取token以及jira对象
唐古乌梁海
python jira
此脚本可以连接Jira,通过Jira的token,Jira对象可以实现与Jira的交互,从而完成jira与pytest的交互,或者其他自动化测试框架也行,例如:将pytest运行结果推送jira;将jira用例与自动化测试用例建立映射关系,将功能用例对应的自动化测试用例脚本路径推送到功能用例的描述栏,或者自动化栏里面#!/usr/bin/envpython#-*-coding:utf-8-*-#@
Python 基础-循环
赔罪
Python 系统学习 python windows 服务器
目录简介breakcontinue小结简介要计算1+2+3,我们可以直接写表达式:>>>1+2+36要计算1+2+3+...+10,勉强也能写出来。但是,要计算1+2+3+...+10000,直接写表达式就不可能了。为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:names=[
【FastAPI 】FastAPI 模板:提供静态文件
iFakeCoder
Flask fastapi python 开发语言
FastAPI是一个现代、快速(高性能)的Web框架,用于基于标准Python类型提示使用Python3.7+构建API。虽然它的主要用例是构建API,但FastAPI还可以轻松提供静态文件和HTML模板,从而让您可以构建全栈Web应用程序。在此博客中,我们将探讨如何使用FastAPI提供静态文件。我们将介绍基础知识并提供演示以帮助您入门。为什么要提供静态文件?静态文件是不经常更改的资产,并按原样
深度学习在医疗影像分析中的革命性应用
Echo_Wish
人工智能 前沿技术 深度学习 人工智能
深度学习在医疗影像分析中的革命性应用引言医疗影像分析是现代医学中不可或缺的一部分,特别是在疾病诊断和治疗过程中发挥了至关重要的作用。随着深度学习技术的发展,医疗影像分析的效率和准确性得到了显著提升。本文将探讨如何利用深度学习技术,特别是Python编程语言,来优化医疗影像分析,展示具体的代码实例,并举例说明其实际应用效果。深度学习与医疗影像分析深度学习(DeepLearning)是一种基于人工神经
DeepSeek使用中的问题及解决方案(部分)
WeiLai1112
DeepSeek 人工智能
1.模型部署与配置问题问题1:环境依赖冲突现象:安装模型依赖库时出现版本不兼容(如Python、PyTorch版本冲突)。解决方案:使用虚拟环境(如conda或venv)隔离依赖。严格按照官方文档的版本要求安装依赖,例如:condacreate-ndeepseekpython=3.9condaactivatedeepseekpipinstalltorch==2.0.1transformers==4
python whoosh
clisy
python 开源 搜索
原文地址:http://whoosh.ca/wikiWhoosh:高效的纯python全文搜索组件Whoosh是一个纯python实现的全文搜索组件。Whoosh不但功能完善,还非常的快。Whoosh的作者是MattChaput,由SideEffectsSoftware公司开发。项目的最初用于Houdini(SideEffectsSoftware公司开发的3D动画软件)的在线帮助系统。SideEf
Python性能优化:懒加载与其他高级技巧
车载testing
pytest数据驱动框架开发 python python 数据库 开发语言
Python性能优化:懒加载与其他高级技巧在软件开发中,我们经常会遇到一些需要大量资源或时间来初始化的对象。如果这些对象在程序的整个生命周期中只被使用一次或很少使用,那么在程序启动时就立即初始化它们将是一种资源浪费。什么是懒加载?懒加载是一种设计模式,它推迟了对象的初始化直到其被实际需要的时候。这种方式可以提高程序的启动速度,减少内存消耗,并在某些情况下提高性能。实现懒加载的步骤定义类和属性:首先
java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
电驴链接在线视频播放源码
dubinwei
源码 电驴 播放器 视频 ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
Javascript中函数的toString()方法
周凡杨
JavaScript js toString function object
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
SpringMVC的各种参数绑定方式
Harry642
springMVC 绑定 表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
Java 获取Oracle ROWID
aijuans
java oracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
java获取方法的参数名
antlove
java jdk parameter method reflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java 正则表达式 替换 提取 查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
Java中equals()与hashCode()方法详解
bijian1013
java set equals() hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle 数据库 plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
kafka获得最新partition offset
blackproof
kafka partition offset 最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
[JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件 滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
C语言算法之水仙花数
qiufeihu
c 算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include