抓取某安全公司升级包链接(python小白登天日记)

如果有大神路过,希望指出我描述种错误的部分,感激不尽。
他的工作是去别人公司给安全软件升级,比如如果客户公司版本号是1.1,最新版本号是10.0,他需要从1.2下载到10.0并且按顺序安装,这是他给我的链接:
http://update.nsfocus.com/update/listAurora/v/5
可以看到需要下载的东西确实挺多的,如果一个个点不是不能点完,但是这个正好可以用来练手,也挺简单的,不需要登录,

这一次我先上代码 版本2.7:


from bs4 import BeautifulSoup#解析网页的模块
import re#正则模块
import urllib#网络请求模块
url = "http://update.nsfocus.com/update/listAurora/v/5"
page = urllib.urlopen(url)#请求页面
html = page.read()#获取页面内容
soup = BeautifulSoup(html,'html.parser')#将页面变成bs的一个对象,用来后面的解析
test = soup.find_all(attrs={'href':re.compile("/update/downloads/id/")})#利用正则找到 含有href这个属性,且href中包含"/update/downloads/id/"这块字符串的所有标签。
for a in test:#遍历下载链接
Furl = downloadUrl + a['href']
print Furl
urllib.urlretrieve(Furl,"code.zip")#开始下载,但是这一块是错误的

先说BeautifulSoup,以下简称bs:

bs是用来解析接收到的网页的,解析约等于处理数据,咱们接受下来的网页有数不清的嵌套的标签,标签里有一堆乱七八糟的属性和值还有标签自己的content,我打印一下上面代码中的html大家一起鉴赏一下:




本来想将这个html所有代码都拿过来大家鉴赏一下但是复制了一下,实在太大了,而且都给我提示了:

抓取某安全公司升级包链接(python小白登天日记)_第1张图片
提示

上面放的代码只是极小极小一部分,这也是我们为什么要用bs模块来解析网页的原因,他会让我们解析这个网页的过程变得异常简单且流畅,下面说一下常用的方法:

soup = BeautifulSoup(html,'html.parser')

将html这个页面解析为一个bs的可操作对象。
BeautifulSoup()这个方法必填的两个参数,一个是html,也就是我们需要解析的网页,另一个是一个str,它代表的是什么呢?Beautiful Soup 4.4.0 文档查看官方文档,发现它有详细的解释:

解析器 使用方法 优势 劣势
Python标准库 BeautifulSoup(markup, "html.parser")

Python的内置标准库

执行速度适中

文档容错能力强

Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差
Python标准库 BeautifulSoup(markup, "lxml")

速度快

文档容错能力强

需要安装C语言库
lxml XML 解析器

BeautifulSoup(markup, ["lxml-xml"])

BeautifulSoup(markup, "xml")

速度快

唯一支持XML的解析器

需要安装C语言库
html5lib BeautifulSoup(markup, "html5lib")

最好的容错性

以浏览器的方式解析文档

生成HTML5格式的文档

速度慢

不依赖外部扩展

上面的表格详细的写明白了这个字符串对应各种状况下应该填什么,优劣点都写的很清楚,我就不赘述了。

find_all方法简析:

test = soup.find_all(attrs={'href':re.compile("/update/downloads/id/")})
因为我要抓取当前页面的所有下载链接,所以我首先要找到含有这些链接的所有的网页标签,chrome打开链接,我用Mac的快捷键option+command+i 打开页面,然后shift+command+c 选中左边的显示内容,右边网页元素部分就会高亮对应的标签:

抓取某安全公司升级包链接(python小白登天日记)_第2张图片
审查网页元素

可以看到右边代码高亮的部分如下:
aurora-051701.dat
下一个下载链接所在的标签:
aurora-051700.dat

看了几个标签之后总结一下规律,发现href中都含有"/update/downloads/id"这个字符串,但是这个字符串并不是完整的href值,所以我们用re.compile("/update/downloads/id")来表示完整的值。
接着说回来find_all():
find_all(name,attrs,recursive,string,**kwargs)


name 参数

name参数可以查找所有名字为 name的tag,字符串对象会被自动忽略掉.简单的用法如下:
soup.find_all("title")# [The Dormouse's story]
重申: 搜索 name参数的值可以使任一类型的 过滤器 ,字符c,正则表达式,列表,方法或是 True.

keyword 参数

如果一个指定名字的参数不是搜索内置的参数名,搜索时会把该参数当作指定名字tag的属性来搜索,如果包含一个名字为 id的参数,BeautifulSoup会搜索每个tag的”id”属性.
soup.find_all(id='link2')# [
Lacie]

如果传入 href 参数,Beautiful Soup会搜索每个tag的”href”属性:
soup.find_all(href=re.compile("elsie"))# [Elsie]

搜索指定名字的属性时可以使用的参数值包括 字符串 , 正则表达式 , 列表, True .
下面的例子在文档树中查找所有包含 id 属性的tag,无论 id 的值是什么:

soup.find_all(id=True)
[//Elsie,
//Lacie,
//Tillie]

使用多个指定名字的参数可以同时过滤tag的多个属性:
soup.find_all(href=re.compile("elsie"), id='link1')
// [three]

有些tag属性在搜索不能使用,比如HTML5中的 data-* 属性:
data_soup = BeautifulSoup('

foo!
')data_soup.find_all(data-foo="value")
// SyntaxError: keyword can't be an expression

但是可以通过 find_all()方法的 attrs 参数定义一个字典参数来搜索包含特殊属性的tag:
data_soup.find_all(attrs={"data-foo": "value"})
// [

foo!
]

按CSS搜索

按照CSS类名搜索tag的功能非常实用,但标识CSS类名的关键字 class 在Python中是保留字,使用 class 做参数会导致语法错误.从BeautifulSoup的4.1.1版本开始,可以通过 class_ 参数搜索有指定CSS名的tag:
soup.find_all("a", class_="sister")
// [Elsie,
//Lacie,
//Tillie]

class_ 参数同样接受不同类型的 过滤器 ,字符串,正则表达式,方法或 True :
soup.find_all(class_=re.compile("itl"))
//[

The Dormouse's story

]def has_six_characters(css_class): return css_class is not None and len(css_class) == 6soup.find_all(class_=has_six_characters)
//[Elsie,
//Lacie,
//Tillie]

tag的 class 属性是 多值属性 .按照CSS类名搜索tag时,可以分别搜索tag中的每个CSS类名:
css_soup = BeautifulSoup('

')css_soup.find_all("p", class_="strikeout")
//[

]css_soup.find_all("p", class_="body")
//[

]

搜索 class 属性时也可以通过CSS值完全匹配:
css_soup.find_all("p", class_="body strikeout")# [

]

完全匹配 class 的值时,如果CSS类名的顺序与实际不符,将搜索不到结果:
soup.find_all("a", attrs={"class": "sister"})
//[Elsie,
//Lacie,
//Tillie]

string参数

通过 string 参数可以搜搜文档中的字符串内容.与 name 参数的可选值一样, string 参数接受 字符串 , 正则表达式 , 列表, True . 看例子:

soup.find_all(string="Elsie")
//[u'Elsie']soup.find_all(string=["Tillie", "Elsie", "Lacie"])
//[u'Elsie',u'Lacie',u'Tillie']
soup.find_all(string=re.compile("Dormouse"))
//[u"The Dormouse's story", u"The Dormouse's story"]
def is_the_only_string_within_a_tag(s):
""Return True if this string is the only child of its parent tag.""
return (s == s.parent.string)soup.find_all(string=is_the_only_string_within_a_tag)
//[u"The Dormouse's story", u"The Dormouse's story", u'Elsie', u'Lacie', u'Tillie', u'...']

虽然 string参数用于搜索字符串,还可以与其它参数混合使用来过滤tag.Beautiful Soup会找到 .string 方法与 string 参数值相符的tag.下面代码用来搜索内容里面包含“Elsie”的a标签:
soup.find_all("a", string="Elsie")# [Elsie]

limit参数

find_all()方法返回全部的搜索结构,如果文档树很大那么搜索会很慢.如果我们不需要全部结果,可以使用 limit 参数限制返回结果的数量.效果与SQL中的limit关键字类似,当搜索到的结果数量达到 limit 的限制时,就停止搜索返回结果.文档树中有3个tag符合搜索条件,但结果只返回了2个,因为我们限制了返回数量:
soup.find_all("a", limit=2)
//[Elsie,
//Lacie]

recursive参数

调用tag的 find_all() 方法时,Beautiful Soup会检索当前tag的所有子孙节点,如果只想搜索tag的直接子节点,可以使用参数 recursive=False.
一段简单的文档:
The Dormouse's story ...

是否使用 recursive参数的搜索结果:
soup.html.find_all("title")# [The Dormouse's story]soup.html.find_all("title", recursive=False)# []

这是文档片段
The Dormouse's story ...

标签在 <html> 标签下, 但并不是直接子节点, <head> 标签才是直接子节点. 在允许查询所有后代节点时 Beautiful Soup 能够查找到 <title> 标签. 但是使用了 recursive=False 参数之后,只能查找直接子节点,这样就查不到 <title> 标签了.<br> Beautiful Soup 提供了多种DOM树搜索方法. 这些方法都使用了类似的参数定义. 比如这些方法: find_all(): name, attrs, text, limit. 但是只有 find_all() 和 find() 支持 recursive 参数.<br> </blockquote></a></p> <p>最后我用for遍历了一下所有标签,但是我们要的是标签里面href的值,所以要这么写:<br> <code>a['href']</code><br> 这样,我们就能打印出所有的链接,但是下载的部分那天是在太晚了,所以就没去看那个下载方法怎么使用,直接在网上找了一段代码,果然出错误了,咱们下次再说</p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1283473411871358976"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(抓取某安全公司升级包链接(python小白登天日记))</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1901279764128264192.htm" title="清华大学《DeepSeek赋能家庭教育》深度解析:AI如何重塑现代家庭教育模式" target="_blank">清华大学《DeepSeek赋能家庭教育》深度解析:AI如何重塑现代家庭教育模式</a> <span class="text-muted">硅基打工人</span> <a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a> <div>引言:家庭教育的困境与AI的破局在数字化与智能化浪潮下,家庭教育面临多重挑战:家长教育能力不足、教育资源分配不均、亲子沟通效率低下、个性化需求难以满足等。清华大学发布的《DeepSeek赋能家庭教育》系列报告(共56页)提出了一种基于人工智能的解决方案,通过深度学习平台DeepSeek,为家庭教育注入科技动能。本文将从技术原理、核心功能、应用场景、伦理安全及未来展望等多维度展开分析。一、DeepS</div> </li> <li><a href="/article/1901279634146783232.htm" title="python+django+vue医院门诊挂号预约管理系统57wsx" target="_blank">python+django+vue医院门诊挂号预约管理系统57wsx</a> <span class="text-muted">QQ_402205496</span> <a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>开发语言:Python框架:django/flaskPython版本:python3.7.7数据库:mysql数据库工具:Navicat开发软件:PyCharm主要功能有:管理员功能:系统首页、个人中心、用户管理、医生管理、疫情公告管理、行动轨迹管理、异样报告管理、科室信息管理、异常报告管理、系统管理、医院信息管理、预约信息管理、在线聊天管理、聊天回复管理、我的收藏管理。用户功能模块:系统首页、个</div> </li> <li><a href="/article/1901279637758078976.htm" title="一键解锁压缩烦恼!高效安全免费解压缩神器全面深度剖析" target="_blank">一键解锁压缩烦恼!高效安全免费解压缩神器全面深度剖析</a> <span class="text-muted">山峰999</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E8%8D%90%E7%AE%97%E6%B3%95/1.htm">推荐算法</a> <div>❤亲爱的小伙伴们,我不定期分享好玩有趣的软件!部分小伙伴有这个需求,为了不错过我们的每一次分享,请大家记得回复互动留言,及时联系就能找到你需要的宝贝,这样大家每天都可以接收和享受到好玩有趣的推送了!❤❤❤你无需担心试用过期或反复提示购买的问题,解压缩神器国际版本承诺永久免费,让你可以无负担地享受压缩服务。在数据压缩与解压领域,一款高效、安全且易用的工具无疑是每位用户的首选。解压缩神器,作为一款的免</div> </li> <li><a href="/article/1901278123379453952.htm" title="Python 入门" target="_blank">Python 入门</a> <span class="text-muted">『六哥』</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Python安装检测许多PC和Mac都已经安装了python。如果需要检查是否已在WindowsPC上安装了python,请在开始栏中寻找Python或在命令行(cmd.exe)上运行以下命令:C:\Users\YourName>python--version如果是检查是否在Linux或Mac上安装了python,请在Linux上打开命令行或在Mac上打开终端并键入:python--version</div> </li> <li><a href="/article/1901277492635824128.htm" title="Python爬虫|获取大麦网演出信息" target="_blank">Python爬虫|获取大麦网演出信息</a> <span class="text-muted">最好的药物是乌梅</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>使用Selenium库自动化浏览器操作,从大麦网的搜索结果页面抓取演唱会信息,并将这些信息保存到一个CSV文件中代码的主要步骤包括:1.初始化WebDriver。2.打开指定的URL。3.模拟点击“全部”按钮。4.循环抓取每一页的演唱会信息,并写入CSV文件。5.关闭WebDriver。代码拆分讲解1.导入相关库fromselenium.webdriver.supportimportexpecte</div> </li> <li><a href="/article/1901277365095428096.htm" title="数码管绘制程序(python)" target="_blank">数码管绘制程序(python)</a> <span class="text-muted">最好的药物是乌梅</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>题目自行设计界面上的输出信息"加上班级姓名学号,日期的年月日等"包括字体、颜色、样式均可自行编辑.将——————————的每一行补充正确的代码。importturtle,datetimedefdrawLine(draw):#绘制单段数码管turtle.pendown()ifdrawelseturtle.penup()turtle.fd(40)——————————————————————(1)———</div> </li> <li><a href="/article/1901277366294999040.htm" title="超详细小白做题思路全解LeetCode989.组形式的整数加法" target="_blank">超详细小白做题思路全解LeetCode989.组形式的整数加法</a> <span class="text-muted">最好的药物是乌梅</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>989.数组形式的整数加法题目整数的数组形式num是按照从左到右的顺序表示其数字的数组。例如,对于num=1321,数组形式是[1,3,2,1]。给定num,整数的数组形式,和整数k,返回整数num+k的数组形式。示例1:输入:num=[1,2,0,0],k=34输出:[1,2,3,4]解释:1200+34=1234示例2:输入:num=[2,7,4],k=181输出:[4,5,5]解释:274+</div> </li> <li><a href="/article/1901276986702098432.htm" title="Java 枚举类的使用指南" target="_blank">Java 枚举类的使用指南</a> <span class="text-muted">HoroMin</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在Java中,枚举(enum)是一种特殊的数据类型,用于定义一组常量。它的使用可以提高代码的可读性和类型安全性。本文将介绍如何定义和使用枚举类,并回答有关枚举值格式的问题。1.什么是枚举?枚举是一种数据类型,允许你定义变量为特定值的集合。与普通常量相比,枚举提供了更多特性,包括字段、方法和构造器。2.如何定义枚举值使用enum关键字可以定义一个枚举类。以下是一个示例,展示了如何定义表示HTTP状态</div> </li> <li><a href="/article/1901276987192832000.htm" title="Kubernetes 认证授权实验总结" target="_blank">Kubernetes 认证授权实验总结</a> <span class="text-muted">π大星星️</span> <a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a> <div>实验目标通过一系列实验步骤,深入理解Kubernetes中的认证和授权机制,包括用户账户和服务账户的创建、RBAC(基于角色的访问控制)的配置与应用,以及如何通过这些机制实现对Kubernetes资源的安全访问控制。实验环境Kubernetes集群(已部署并运行)kubectl命令行工具(已配置并连接到集群)一台具有管理员权限的主机(用于执行命令)实验一:创建用户账户并进行认证实验目的创建一个用户</div> </li> <li><a href="/article/1901275347438071808.htm" title="tensorflow 不支持python3以下的版本" target="_blank">tensorflow 不支持python3以下的版本</a> <span class="text-muted">辽宁大学</span> <a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a> <div>小白一枚,没用过tensorflow,所以在安装的时候导致版本错误安装不上。遇到这种情况建议换python的版本。</div> </li> <li><a href="/article/1901274466193829888.htm" title="springboot整合阿里云短信服务" target="_blank">springboot整合阿里云短信服务</a> <span class="text-muted">weixin_45907636</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>短信服务特点现阶段用于验证账号是否为本人使用的手段越来越多,短信服务就是其中一种。由于一般用户的手机号码不会随意改变,所以短信服务是检验使用者是否为用户本人的一种较为安全且有效的方案。短信服务平台一般国内的大型互联网公司都会提供短信服务,例如说阿里云,腾讯云,华为云等,不过由于需要预防短信服务被不法分子用来实施诈骗,很多平台会对个人用户申请短信服务进行限制,需要根据自己备案的网站、应用、域名等进行</div> </li> <li><a href="/article/1901270560894152704.htm" title="第5篇:从入门到精通:深入详解Python模块与包管理的应用" target="_blank">第5篇:从入门到精通:深入详解Python模块与包管理的应用</a> <span class="text-muted">猿享天开</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>第5篇:模块与包管理目录模块概述什么是模块导入模块标准库简介创建与使用自定义模块创建模块导入自定义模块模块搜索路径包(Packages)什么是包创建包导入包中的模块常用内置模块介绍math模块datetime模块os模块sys模块模块与包的最佳实践命名规范组织结构避免循环导入示例代码常见问题及解决方法总结模块概述什么是模块模块是Python中组织代码的一种方式。一个模块就是一个包含Python定义</div> </li> <li><a href="/article/1901269804233322496.htm" title="Java对接DeepSeek全攻略:从0到1小白无忧" target="_blank">Java对接DeepSeek全攻略:从0到1小白无忧</a> <span class="text-muted">古龙飞扬</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>本文将带你从零开始,详细讲解如何在Java中对接DeepSeekAPI,适合小白用户。我们将从环境搭建、API调用、数据处理等方面逐步展开,并提供完整的代码示例。目录准备工作获取DeepSeekAPI密钥创建Java项目添加依赖使用Maven引入HTTP和JSON库编写代码创建请求和响应类发送HTTP请求处理API响应完整代码示例运行与测试常见问题与解决方案1.准备工作1.1获取DeepSeekA</div> </li> <li><a href="/article/1901269678014132224.htm" title="Spring Security 6.4登录全览:机制、特性、实战与优化" target="_blank">Spring Security 6.4登录全览:机制、特性、实战与优化</a> <span class="text-muted">古龙飞扬</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>一、登录机制SpringSecurity的登录机制是其安全框架的核心部分,它提供了一种灵活且强大的方式来保护应用程序的资源。在SpringSecurity6.4中,登录机制主要包括以下几个方面:认证流程:用户通过登录表单提交用户名和密码。SpringSecurity的UsernamePasswordAuthenticationFilter拦截该请求,并从中提取用户名和密码。创建一个Username</div> </li> <li><a href="/article/1901269014567514112.htm" title="鸿蒙开发:权限管理之权限声明" target="_blank">鸿蒙开发:权限管理之权限声明</a> <span class="text-muted"></span> <div>前言本文基于Api13。为什么要有权限管理?最大原因是提高用户对隐私和数据安全的控制权,防止恶意软件滥用权限,试想一下,如果没有权限管理,肯定会有一些恶意软件利用这些默认授权权限,获取用户的敏感信息,对用户隐私构成威胁‌,这是其一,其二就是用户的体验,因为用户无法根据自己的需求授权权限,可能导致不必要的权限被授予,于公于私,于情于理,权限管理都是必须且坚决要执行的。鸿蒙生态中,可以说,权限管理从始</div> </li> <li><a href="/article/1901268165942374400.htm" title="用Python打造智能姓名生成器:从数据分离到AI赋能" target="_blank">用Python打造智能姓名生成器:从数据分离到AI赋能</a> <span class="text-muted">灏瀚星空</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>用Python打造智能姓名生成器:从数据分离到AI赋能目录项目概述与功能清单环境准备与工具选择项目架构设计核心代码实现AI古文解析模块交互界面开发使用示例与效果展示扩展思路与优化建议1.项目概述与功能清单核心功能数据管理CSV文件存储姓氏/名字库支持用户导入/导出数据交互界面姓名生成与实时预览已选名单管理(增删改查)排除词输入框(黑名单过滤)AI赋能从古文中提取字词及注解自动生成姓名寓意解析扩展功</div> </li> <li><a href="/article/1901267535907581952.htm" title="Python常用10个模块详解:提升开发效率的利器" target="_blank">Python常用10个模块详解:提升开发效率的利器</a> <span class="text-muted">Python_trys</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/Python%E5%85%A5%E9%97%A8/1.htm">Python入门</a><a class="tag" taget="_blank" href="/search/Python%E5%9F%BA%E7%A1%80/1.htm">Python基础</a><a class="tag" taget="_blank" href="/search/Python%E6%95%99%E7%A8%8B/1.htm">Python教程</a> <div>包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取!】Python作为一门功能强大且易于学习的编程语言,拥有丰富的标准库和第三方模块,能够帮助开发者快速实现各种功能。本文将详细介绍Python中常用的10个模块,帮助你在开发中更高效地完成任务。1.os模块:操作系统交互os模块提供了与操作系统交互的功能,包括文件操作、目录管理、环境变量等。常用功能:文件与目录操作:importos#获取当前</div> </li> <li><a href="/article/1901266528054079488.htm" title="云端书签:在iCloud中存储Safari书签的终极指南" target="_blank">云端书签:在iCloud中存储Safari书签的终极指南</a> <span class="text-muted">2401_85702623</span> <a class="tag" taget="_blank" href="/search/icloud/1.htm">icloud</a><a class="tag" taget="_blank" href="/search/safari/1.htm">safari</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>云端书签:在iCloud中存储Safari书签的终极指南在数字化时代,互联网成为了我们获取信息的海洋,而书签则是我们在这海洋中导航的灯塔。Safari浏览器的书签功能帮助我们保存喜爱的网站,但当书签数量日益增多,如何在不同设备间同步它们成了一个挑战。iCloud作为苹果公司提供的云服务,为我们提供了一个完美的解决方案。本文将详细介绍如何在iCloud中存储和同步Safari书签,确保你的灯塔始终照</div> </li> <li><a href="/article/1901266528565784576.htm" title="掌握Conda的艺术:精通channels管理" target="_blank">掌握Conda的艺术:精通channels管理</a> <span class="text-muted">2401_85702623</span> <a class="tag" taget="_blank" href="/search/conda/1.htm">conda</a> <div>掌握Conda的艺术:精通channels管理Conda作为Python和其他科学计算包的包管理器,其强大的包管理能力很大程度上依赖于channels。channels是Conda用来查找和安装包的源。默认情况下,Conda会从Anaconda的官方源安装包,但有时我们需要添加额外的channels来获取更多的包或者特定版本的包。本文将详细介绍如何在Conda中使用condaconfig--add</div> </li> <li><a href="/article/1901265644951760896.htm" title="Python模块详解:定义、操作方法与高级特性" target="_blank">Python模块详解:定义、操作方法与高级特性</a> <span class="text-muted">编程咕咕gu-</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>如果你正在学习Python,那么你需要的话可以点击这里Python重磅福利:入门&进阶全套学习资料、电子书、软件包、项目源码等等免费分享!在Python中,模块是一个包含Python定义和语句的文件。模块可以定义函数、类和变量。模块也可以包含可执行的代码。你可以通过import语句将一个模块中的函数、类等导入到当前的程序中,以便能够重复使用代码,提高代码的可维护性。模块定义一个Python文件(.</div> </li> <li><a href="/article/1901264887561121792.htm" title="3.13.0 python 配置tensorflow(CPU版本)" target="_blank">3.13.0 python 配置tensorflow(CPU版本)</a> <span class="text-muted">m0_Gattuso</span> <a class="tag" taget="_blank" href="/search/tensorflow/1.htm">tensorflow</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>condacreate--nametestpython=3.12activatetestpipinstalltensorflow上面3步骤在condaprompt里完成退出时记得condadeactivate来源:Windows下tensorflow/pytorch环境配置_pycharm怎么配置tensorflow环境-CSDN博客然后问题出现了:condaenvironment里什么都没有,理</div> </li> <li><a href="/article/1901263754465701888.htm" title="2021-05-21 python中curses基本用法" target="_blank">2021-05-21 python中curses基本用法</a> <span class="text-muted">zerfew</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/curses/1.htm">curses</a><a class="tag" taget="_blank" href="/search/cli/1.htm">cli</a> <div>有时候linux系统没有界面,可能需要在terminal终端完成程序的交互和状态显示,C语言的ncurses支持命令行界面程序开发,curses是基于ncurses实现的python终端界面库。本文实现一个简单的demo小程序,方便初学者学习和使用。首先上demo主程序#-*-coding:UTF-8-*-importcursesimportlocalelocale.setlocale(local</div> </li> <li><a href="/article/1901263249882542080.htm" title="构建可扩展的Python API与框架:实践与指南" target="_blank">构建可扩展的Python API与框架:实践与指南</a> <span class="text-muted">清水白石008</span> <a class="tag" taget="_blank" href="/search/Python%E9%A2%98%E5%BA%93/1.htm">Python题库</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA/1.htm">计算机</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>构建可扩展的PythonAPI与框架:实践与指南一、引言在当今的软件开发中,可扩展性已成为一个不可或缺的特性。一个可扩展的API或框架不仅能够满足当前的需求,还能轻松应对未来的变化和增长。本文将深入探讨在Python中如何设计一个可扩展的API或框架,通过实际例子和详细步骤,为您提供一个实用的指南。二、理解可扩展性可扩展性指的是系统或软件能够容易地适应变化,包括但不限于新功能的添加、现有功能的修改</div> </li> <li><a href="/article/1901263250608156672.htm" title="在 Python 中实现 RESTful API 的完整指南" target="_blank">在 Python 中实现 RESTful API 的完整指南</a> <span class="text-muted">清水白石008</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/Python%E9%A2%98%E5%BA%93/1.htm">Python题库</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/restful/1.htm">restful</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在Python中实现RESTfulAPI的完整指南随着互联网的发展,RESTfulAPI(RepresentationalStateTransfer)已成为现代应用程序架构的重要组成部分。RESTfulAPI允许不同系统之间通过HTTP协议进行通信,提供了一种简单而灵活的方式来访问和操作资源。在这篇文章中,我们将深入探讨如何在Python中实现RESTfulAPI,并提供简单的示例代码。一、什么是</div> </li> <li><a href="/article/1901263092399009792.htm" title="鸿蒙开发:权限管理之权限声明" target="_blank">鸿蒙开发:权限管理之权限声明</a> <span class="text-muted"></span> <div>前言本文基于Api13。为什么要有权限管理?最大原因是提高用户对隐私和数据安全的控制权,防止恶意软件滥用权限,试想一下,如果没有权限管理,肯定会有一些恶意软件利用这些默认授权权限,获取用户的敏感信息,对用户隐私构成威胁‌,这是其一,其二就是用户的体验,因为用户无法根据自己的需求授权权限,可能导致不必要的权限被授予,于公于私,于情于理,权限管理都是必须且坚决要执行的。鸿蒙生态中,可以说,权限管理从始</div> </li> <li><a href="/article/1901261827338203136.htm" title="MIE 1622H Risk-Based and Robust" target="_blank">MIE 1622H Risk-Based and Robust</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>MIE1622H:Assignment2–Risk-BasedandRobustPortfolioSelectionStrategiesDr.OleksandrRomanko,MohammadrezaMohammadiFebruary10,2025Due:Friday,March7,2025,notlaterthan11:59p.m.UsePythonforallMIE1622Hassignmen</div> </li> <li><a href="/article/1901261570659381248.htm" title="python测试工具 doctest" target="_blank">python测试工具 doctest</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/pythondoctest/1.htm">pythondoctest</a> <div>python调试工具doctestbriefintroductiondoctest是python自带的一个调试测试工具,可用于初步检测你写的python程序的输入与输出结果是否符合你的预期通过在自己写的函数内,按照规定的格式写上你想要对比的输入输出结果,再使用python3-mdoctestexample.py(example.py是你要test的python程序),python会自动帮你用你的输</div> </li> <li><a href="/article/1901261359518117888.htm" title="关于“Python int too large to convert to C long”的解决。" target="_blank">关于“Python int too large to convert to C long”的解决。</a> <span class="text-muted">James Bamp</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/too/1.htm">too</a><a class="tag" taget="_blank" href="/search/large/1.htm">large</a><a class="tag" taget="_blank" href="/search/long/1.htm">long</a> <div>这个问题在我使用python计算平方的时候出现,其实问题的症结并不是数据太大(你可以使用print(很大的数的平方)来验证,会发现是可以输出的),而是数据结构的问题。具体是指,直接使用np.array数据来遍历,会出问题,但是如果将np.array数据转化为列表形式再遍历,那么就不会出现问题。例如:data=np.array(100020003000)#计算平方和sum_squa=0foriinr</div> </li> <li><a href="/article/1901260853953490944.htm" title="python restful api 高并发_Python 之路,Restful API设计规范" target="_blank">python restful api 高并发_Python 之路,Restful API设计规范</a> <span class="text-muted">IT小霸王</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/restful/1.htm">restful</a><a class="tag" taget="_blank" href="/search/api/1.htm">api</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">高并发</a> <div>理解RESTful架构RestfulAPI设计指南理解RESTful架构越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(highlatency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的</div> </li> <li><a href="/article/1901259844896223232.htm" title="Python int too large to convert to C long" target="_blank">Python int too large to convert to C long</a> <span class="text-muted">铃音.</span> <a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>报错在用python的matplotlib库绘制折线图时我报了这个错误PythoninttoolargetoconverttoClong解决方法win+R然后输入cmd,再输入pipinstall--upgradematplotlib然后问题就解决了</div> </li> <li><a href="/article/11.htm" title="VMware Workstation 11 或者 VMware Player 7安装MAC OS X 10.10 Yosemite" target="_blank">VMware Workstation 11 或者 VMware Player 7安装MAC OS X 10.10 Yosemite</a> <span class="text-muted">iwindyforest</span> <a class="tag" taget="_blank" href="/search/vmware/1.htm">vmware</a><a class="tag" taget="_blank" href="/search/mac+os/1.htm">mac os</a><a class="tag" taget="_blank" href="/search/10.10/1.htm">10.10</a><a class="tag" taget="_blank" href="/search/workstation/1.htm">workstation</a><a class="tag" taget="_blank" href="/search/player/1.htm">player</a> <div>最近尝试了下VMware下安装MacOS 系统, 安装过程中发现网上可供参考的文章都是VMware Workstation 10以下, MacOS X 10.9以下的文章, 只能提供大概的思路, 但是实际安装起来由于版本问题, 走了不少弯路, 所以我尝试写以下总结, 希望能给有兴趣安装OSX的人提供一点帮助。     写在前面的话: 其实安装好后发现, 由于我的th</div> </li> <li><a href="/article/138.htm" title="关于《基于模型驱动的B/S在线开发平台》源代码开源的疑虑?" target="_blank">关于《基于模型驱动的B/S在线开发平台》源代码开源的疑虑?</a> <span class="text-muted">deathwknight</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a> <div>本人从学习Java开发到现在已有10年整,从一个要自学 java买成javascript的小菜鸟,成长为只会java和javascript语言的老菜鸟(个人邮箱:deathwknight@163.com) 一路走来,跌跌撞撞。用自己的三年多业余时间,瞎搞一个小东西(基于模型驱动的B/S在线开发平台,非MVC框架、非代码生成)。希望与大家一起分享,同时有许些疑虑,希望有人可以交流下 平台</div> </li> <li><a href="/article/265.htm" title="如何把maven项目转成web项目" target="_blank">如何把maven项目转成web项目</a> <span class="text-muted">Kai_Ge</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/MyEclipse/1.htm">MyEclipse</a> <div>创建Web工程,使用eclipse ee创建maven web工程 1.右键项目,选择Project Facets,点击Convert to faceted from 2.更改Dynamic Web Module的Version为2.5.(3.0为Java7的,Tomcat6不支持). 如果提示错误,可能需要在Java Compiler设置Compiler compl</div> </li> <li><a href="/article/392.htm" title="主管???" target="_blank">主管???</a> <span class="text-muted">Array_06</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a> <div>转载:http://www.blogjava.net/fastzch/archive/2010/11/25/339054.html 很久以前跟同事参加的培训,同事整理得很详细,必须得转! 前段时间,公司有组织中高阶主管及其培养干部进行了为期三天的管理训练培训。三天的课程下来,虽然内容较多,因对老师三天来的课程内容深有感触,故借着整理学习心得的机会,将三天来的培训课程做了一个</div> </li> <li><a href="/article/519.htm" title="python内置函数大全" target="_blank">python内置函数大全</a> <span class="text-muted">2002wmj</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>最近一直在看python的document,打算在基础方面重点看一下python的keyword、Build-in Function、Build-in Constants、Build-in Types、Build-in Exception这四个方面,其实在看的时候发现整个《The Python Standard Library》章节都是很不错的,其中描述了很多不错的主题。先把Build-in Fu</div> </li> <li><a href="/article/646.htm" title="JSP页面通过JQUERY合并行" target="_blank">JSP页面通过JQUERY合并行</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>在写程序的过程中我们难免会遇到在页面上合并单元行的情况,如图所示 如果对于会的同学可能很简单,但是对没有思路的同学来说还是比较麻烦的,提供一下用JQUERY实现的参考代码 function mergeCell(){         var trs = $("#table tr"); &nb</div> </li> <li><a href="/article/773.htm" title="Java基础" target="_blank">Java基础</a> <span class="text-muted">冰天百华</span> <a class="tag" taget="_blank" href="/search/java%E5%9F%BA%E7%A1%80/1.htm">java基础</a> <div>学习函数式编程 package base; import java.text.DecimalFormat; public class Main { public static void main(String[] args) { // Integer a = 4; // Double aa = (double)a / 100000; // Decimal</div> </li> <li><a href="/article/900.htm" title="unix时间戳相互转换" target="_blank">unix时间戳相互转换</a> <span class="text-muted">adminjun</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AC%E6%8D%A2/1.htm">转换</a><a class="tag" taget="_blank" href="/search/unix/1.htm">unix</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E6%88%B3/1.htm">时间戳</a> <div>如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)? Java time JavaScript Math.round(new Date().getTime()/1000) getTime()返回数值的单位是毫秒 Microsoft .NET / C# epoch = (DateTime.Now.ToUniversalTime().Ticks - 62135</div> </li> <li><a href="/article/1027.htm" title="作为一个合格程序员该做的事" target="_blank">作为一个合格程序员该做的事</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a> <div>作为一个合格程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重</div> </li> <li><a href="/article/1154.htm" title="由html5视频播放引发的总结" target="_blank">由html5视频播放引发的总结</a> <span class="text-muted">ayaoxinchao</span> <a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/%E8%A7%86%E9%A2%91/1.htm">视频</a><a class="tag" taget="_blank" href="/search/video/1.htm">video</a> <div>前言   项目中存在视频播放的功能,前期设计是以flash播放器播放视频的。但是现在由于需要兼容苹果的设备,必须采用html5的方式来播放视频。我就出于兴趣对html5播放视频做了简单的了解,不了解不知道,水真是很深。本文所记录的知识一些浅尝辄止的知识,说起来很惭愧。   视频结构   本该直接介绍html5的<video>的,但鉴于本人对视频</div> </li> <li><a href="/article/1281.htm" title="解决httpclient访问自签名https报javax.net.ssl.SSLHandshakeException: sun.security.validat" target="_blank">解决httpclient访问自签名https报javax.net.ssl.SSLHandshakeException: sun.security.validat</a> <span class="text-muted">bewithme</span> <a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a> <div>     如果你构建了一个https协议的站点,而此站点的安全证书并不是合法的第三方证书颁发机构所签发,那么你用httpclient去访问此站点会报如下错误   javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path bu</div> </li> <li><a href="/article/1408.htm" title="Jedis连接池的入门级使用" target="_blank">Jedis连接池的入门级使用</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/redis%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">redis数据库</a><a class="tag" taget="_blank" href="/search/jedis/1.htm">jedis</a> <div>Jedis连接池操作步骤如下:         a.获取Jedis实例需要从JedisPool中获取;         b.用完Jedis实例需要返还给JedisPool;         c.如果Jedis在使用过程中出错,则也需要还给JedisPool; packag</div> </li> <li><a href="/article/1535.htm" title="变与不变" target="_blank">变与不变</a> <span class="text-muted">bingyingao</span> <a class="tag" taget="_blank" href="/search/%E4%B8%8D%E5%8F%98/1.htm">不变</a><a class="tag" taget="_blank" href="/search/%E5%8F%98/1.htm">变</a><a class="tag" taget="_blank" href="/search/%E4%BA%B2%E6%83%85%E6%B0%B8%E6%81%92/1.htm">亲情永恒</a> <div>变与不变    周末骑车转到了五年前租住的小区,曾经最爱吃的西北面馆、江西水饺、手工拉面早已不在,    各种店铺都换了好几茬,这些是变的。    三年前还很流行的一款手机在今天看起来已经落后的不像样子。    三年前还运行的好好的一家公司,今天也已经不复存在。    一座座高楼拔地而起,</div> </li> <li><a href="/article/1662.htm" title="【Scala十】Scala核心四:集合框架之List" target="_blank">【Scala十】Scala核心四:集合框架之List</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a> <div>Spark的RDD作为一个分布式不可变的数据集合,它提供的转换操作,很多是借鉴于Scala的集合框架提供的一些函数,因此,有必要对Scala的集合进行详细的了解   1. 泛型集合都是协变的,对于List而言,如果B是A的子类,那么List[B]也是List[A]的子类,即可以把List[B]的实例赋值给List[A]变量   2. 给变量赋值(注意val关键字,a,b</div> </li> <li><a href="/article/1789.htm" title="Nested Functions in C" target="_blank">Nested Functions in C</a> <span class="text-muted">bookjovi</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/closure/1.htm">closure</a> <div>  Nested Functions 又称closure,属于functional language中的概念,一直以为C中是不支持closure的,现在看来我错了,不过C标准中是不支持的,而GCC支持。   既然GCC支持了closure,那么 lexical scoping自然也支持了,同时在C中label也是可以在nested functions中自由跳转的</div> </li> <li><a href="/article/1916.htm" title="Java-Collections Framework学习与总结-WeakHashMap" target="_blank">Java-Collections Framework学习与总结-WeakHashMap</a> <span class="text-muted">BrokenDreams</span> <a class="tag" taget="_blank" href="/search/Collections/1.htm">Collections</a> <div>        总结这个类之前,首先看一下Java引用的相关知识。Java的引用分为四种:强引用、软引用、弱引用和虚引用。         强引用:就是常见的代码中的引用,如Object o = new Object();存在强引用的对象不会被垃圾收集</div> </li> <li><a href="/article/2043.htm" title="读《研磨设计模式》-代码笔记-解释器模式-Interpret" target="_blank">读《研磨设计模式》-代码笔记-解释器模式-Interpret</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * 解释器(Interpreter)模式的意图是可以按照自己定义的组合规则集合来组合可执行对象 * * 代码示例实现XML里面1.读取单个元素的值 2.读取单个属性的值 * 多</div> </li> <li><a href="/article/2170.htm" title="After Effects操作&快捷键" target="_blank">After Effects操作&快捷键</a> <span class="text-muted">cherishLC</span> <a class="tag" taget="_blank" href="/search/After+Effects/1.htm">After Effects</a> <div>1、快捷键官方文档 中文版:https://helpx.adobe.com/cn/after-effects/using/keyboard-shortcuts-reference.html 英文版:https://helpx.adobe.com/after-effects/using/keyboard-shortcuts-reference.html 2、常用快捷键</div> </li> <li><a href="/article/2297.htm" title="Maven 常用命令" target="_blank">Maven 常用命令</a> <span class="text-muted">crabdave</span> <a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>Maven 常用命令   mvn archetype:generate mvn install mvn clean mvn clean complie mvn clean test mvn clean install mvn clean package mvn test mvn package mvn site   mvn dependency:res</div> </li> <li><a href="/article/2424.htm" title="shell bad substitution" target="_blank">shell bad substitution</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/shell/1.htm">shell</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a> <div>#!/bin/sh /data/script/common/run_cmd.exp 192.168.13.168 "impala-shell -islave4 -q 'insert OVERWRITE table imeis.${tableName} select ${selectFields}, ds, fnv_hash(concat(cast(ds as string), im</div> </li> <li><a href="/article/2551.htm" title="Java SE 第二讲(原生数据类型 Primitive Data Type)" target="_blank">Java SE 第二讲(原生数据类型 Primitive Data Type)</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Java SE  第二讲: 1.   Windows: notepad, editplus, ultraedit, gvim Linux: vi, vim, gedit 2.   Java 中的数据类型分为两大类: 1)原生数据类型  (Primitive Data Type) 2)引用类型(对象类型)  (R</div> </li> <li><a href="/article/2678.htm" title="CGridView中实现批量删除" target="_blank">CGridView中实现批量删除</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>1,CGridView中的columns添加 array( 'selectableRows' => 2, 'footer' => '<button type="button" onclick="GetCheckbox();" style=&</div> </li> <li><a href="/article/2805.htm" title="Java中泛型的各种使用" target="_blank">Java中泛型的各种使用</a> <span class="text-muted">dyy_gusi</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B3%9B%E5%9E%8B/1.htm">泛型</a> <div>Java中的泛型的使用:1.普通的泛型使用 在使用类的时候后面的<>中的类型就是我们确定的类型。 public class MyClass1<T> {//此处定义的泛型是T private T var; public T getVar() { return var; } public void setVa</div> </li> <li><a href="/article/2932.htm" title="Web开发技术十年发展历程" target="_blank">Web开发技术十年发展历程</a> <span class="text-muted">gcq511120594</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a> <div>回顾web开发技术这十年发展历程: Ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号。 彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,”您填写的信息有误,请重填”。然后跳转回注册页面,以此循环。我现在时常想,如果当时a</div> </li> <li><a href="/article/3059.htm" title="openSession()与getCurrentSession()区别:" target="_blank">openSession()与getCurrentSession()区别:</a> <span class="text-muted">hetongfei</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>来自 http://blog.csdn.net/dy511/article/details/6166134 1.getCurrentSession创建的session会和绑定到当前线程,而openSession不会。 2. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭。 这里getCurrentSession本地事务(本地</div> </li> <li><a href="/article/3186.htm" title="第一章 安装Nginx+Lua开发环境" target="_blank">第一章 安装Nginx+Lua开发环境</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a><a class="tag" taget="_blank" href="/search/openresty/1.htm">openresty</a> <div>首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Nginx上开发Web应用更方便更简单。目前在京东如实时价格、秒</div> </li> <li><a href="/article/3313.htm" title="HSQLDB In-Process方式访问内存数据库" target="_blank">HSQLDB In-Process方式访问内存数据库</a> <span class="text-muted">liyonghui160com</span> <div>    HSQLDB一大特色就是能够在内存中建立数据库,当然它也能将这些内存数据库保存到文件中以便实现真正的持久化。   先睹为快!   下面是一个In-Process方式访问内存数据库的代码示例:     下面代码需要引入hsqldb.jar包 (hsqldb-2.2.8)   import java.s</div> </li> <li><a href="/article/3440.htm" title="Java线程的5个使用技巧" target="_blank">Java线程的5个使用技巧</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>Java线程有哪些不太为人所知的技巧与用法?   萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常 工作中你所用到的工具,通常都有些你从来没有了解过的东西,比方说某个方法或者是一些有趣的用法。比如说线程。没错,就是线程。或者确切说是Thread这个类。当我们在构建高可扩展性系统的时候,通常会面临各种各样的并发编程的问题,不过我们现在所要讲的可能会略有不同。 </div> </li> <li><a href="/article/3567.htm" title="开发资源大整合:编程语言篇——JavaScript(1)" target="_blank">开发资源大整合:编程语言篇——JavaScript(1)</a> <span class="text-muted">shoothao</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>概述:本系列的资源整合来自于github中各个领域的大牛,来收藏你感兴趣的东西吧。     程序包管理器   管理javascript库并提供对这些库的快速使用与打包的服务。 Bower - 用于web的程序包管理。 component - 用于客户端的程序包管理,构建更好的web应用程序。 spm - 全新的静态的文件包管</div> </li> <li><a href="/article/3694.htm" title="避免使用终结函数" target="_blank">避免使用终结函数</a> <span class="text-muted">vahoa.ma</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a> <div>终结函数(finalizer)通常是不可预测的,常常也是很危险的,一般情况下不是必要的。使用终结函数会导致不稳定的行为、更差的性能,以及带来移植性问题。不要把终结函数当做C++中的析构函数(destructors)的对应物。       我自己总结了一下这一条的综合性结论是这样的: 1)在涉及使用资源,使用完毕后要释放资源的情形下,首先要用一个显示的方</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>