抓取某安全公司升级包链接(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/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/1901258961957482496.htm" title="Python精进系列: K-Means 聚类算法调用库函数和手动实现对比分析" target="_blank">Python精进系列: K-Means 聚类算法调用库函数和手动实现对比分析</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%B2%BE%E8%BF%9B%E7%B3%BB%E5%88%97/1.htm">精进系列</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/kmeans/1.htm">kmeans</a> <div>一、引言在机器学习领域,聚类分析是一种重要的无监督学习方法,用于将数据集中的样本划分为不同的组或簇,使得同一簇内的样本具有较高的相似性,而不同簇之间的样本具有较大的差异性。K-Means聚类算法是最常用的聚类算法之一,它以其简单性和高效性在数据挖掘、图像分割、模式识别等领域得到了广泛应用。本文将详细介绍K-Means聚类算法,并分别给出调用现成函数和不调用任何现成函数实现K-Means聚类的代码示</div> </li> <li><a href="/article/1901256188536877056.htm" title="Windows Curses Python 模块使用教程" target="_blank">Windows Curses Python 模块使用教程</a> <span class="text-muted">邱进斌Olivia</span> <div>WindowsCursesPython模块使用教程windows-cursesWindowsCursesPythonmodule项目地址:https://gitcode.com/gh_mirrors/wi/windows-curses1.项目介绍windows-curses是一个为Windows平台提供Pythoncurses模块的Python包。curses模块是Python标准库的一部分,但在</div> </li> <li><a href="/article/1901250644971417600.htm" title="OverflowError: Python int too large to convert to C long**:整数太大,无法转换为C类型long完美解决方法 ️" target="_blank">OverflowError: Python int too large to convert to C long**:整数太大,无法转换为C类型long完美解决方法 ️</a> <span class="text-muted">默 语</span> <a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>OverflowError:PythoninttoolargetoconverttoClong**:整数太大,无法转换为C类型long完美解决方法️OverflowError:PythoninttoolargetoconverttoClong**:整数太大,无法转换为C类型long完美解决方法️**摘要****1.引言****2.产生`OverflowError`的原因****2.1Python与</div> </li> <li><a href="/article/1901248626420674560.htm" title="OpenAI Agents SDK 中文文档 中文教程 (1)" target="_blank">OpenAI Agents SDK 中文文档 中文教程 (1)</a> <span class="text-muted">wtsolutions</span> <a class="tag" taget="_blank" href="/search/openai/1.htm">openai</a><a class="tag" taget="_blank" href="/search/agents/1.htm">agents</a><a class="tag" taget="_blank" href="/search/sdk/1.htm">sdk</a><a class="tag" taget="_blank" href="/search/openai/1.htm">openai</a><a class="tag" taget="_blank" href="/search/agents/1.htm">agents</a><a class="tag" taget="_blank" href="/search/sdk/1.htm">sdk</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E6%96%87/1.htm">中文</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E6%A1%A3/1.htm">文档</a><a class="tag" taget="_blank" href="/search/%E6%95%99%E7%A8%8B/1.htm">教程</a> <div>英文文档原文详见OpenAIAgentsSDKhttps://openai.github.io/openai-agents-python/本文是OpenAI-agents-sdk-python使用翻译软件翻译后的中文文档/教程。分多个帖子发布,帖子的目录如下:(1)OpenAI代理SDK,介绍及快速入门(2)OpenAIagentssdk,agents,运行agents,结果,流,工具,交接目录O</div> </li> <li><a href="/article/1901245601849339904.htm" title="(一)响应式编程理论" target="_blank">(一)响应式编程理论</a> <span class="text-muted">糖心何包蛋爱编程</span> <a class="tag" taget="_blank" href="/search/%E5%93%8D%E5%BA%94%E5%BC%8F%E7%BC%96%E7%A8%8B/1.htm">响应式编程</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%93%8D%E5%BA%94%E5%BC%8F%E6%A1%86%E6%9E%B6/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> <div>小编大学毕业后面试的第一家公司问我会响应式吗,我当时觉得好陌生呀,完全没有听说过的名词,还在那里胡编乱造说一堆,但是也不是完全没有沾边,提到了Java8的新特性,现在想想也是印象很深,但好在成功拿到offer,入职后我就很努力的恶补很多相关知识,现在纯纯就是干货拿来分享,让你少走弯路。在了解响应式编程之后,发现响应式编程在行业内还没有普及,因为这对程序员有比较高的要求,不比传统编程好调试,但是当我</div> </li> <li><a href="/article/1901245096091774976.htm" title="大数据手册(Spark)--Spark安装配置" target="_blank">大数据手册(Spark)--Spark安装配置</a> <span class="text-muted">WilenWu</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%28Data/1.htm">数据分析(Data</a><a class="tag" taget="_blank" href="/search/Analysis%29/1.htm">Analysis)</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/spark/1.htm">spark</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a> <div>本文默认在zsh终端安装配置,若使用bash终端,环境变量的配置文件相应变化。若安装包下载缓慢,可复制链接到迅雷下载,亲测极速~准备工作Spark的安装过程较为简单,在已安装好Hadoop的前提下,经过简单配置即可使用。假设已经安装好了hadoop(伪分布式)和hive,环境变量如下JAVA_HOME=/usr/opt/jdkHADOOP_HOME=/usr/local/hadoopHIVE_HO</div> </li> <li><a href="/article/1901244843531759616.htm" title="地基Python中列表(List) 和 数组(Array) 区别" target="_blank">地基Python中列表(List) 和 数组(Array) 区别</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>在Python中,列表(List)和数组(Array)是两种不同的数据结构,主要区别体现在语法、内存管理和适用场景上。以下是详细对比:1.语法区别特性列表(List)数组(Array)定义方式用方括号[]定义需导入array模块,用array.array()构造函数元素类型可以存储不同类型的元素所有元素必须是同一类型(需指定类型码)类型码无类型码必须指定类型码(如'i'表示整数)示例代码:#列表m</div> </li> <li><a href="/article/1901244844009910272.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>Python标准库非常丰富,提供了大量内置模块,覆盖文件操作、数据处理、网络通信、系统交互等场景。以下是常用模块的详细说明及代码示例:1.文件与系统操作【os模块】处理操作系统相关功能(路径、目录、进程等)。importos#获取当前工作目录current_dir=os.getcwd()print("当前目录:",current_dir)#创建新目录os.makedirs("new_folder"</div> </li> <li><a href="/article/1901240934947942400.htm" title="Web 开发都需要学什么?" target="_blank">Web 开发都需要学什么?</a> <span class="text-muted">Duiz33237</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css3/1.htm">css3</a><a class="tag" taget="_blank" href="/search/web/1.htm">web</a> <div>Web开发是指开发和构建用于互联网的网站和应用程序的过程。它涉及使用各种编程语言、框架和技术来创建功能丰富、用户友好的网站和应用程序。常见的web开发技术包括HTML、CSS和JavaScript。HTML用于创建网页的结构,CSS用于样式和布局,而JavaScript用于实现交互和动态效果。此外,还有许多其他的编程语言和框架,如Python、PHP、Ruby、React、Angular等,用于开</div> </li> <li><a href="/article/1901240556982431744.htm" title="Solana" target="_blank">Solana</a> <span class="text-muted">倒霉男孩</span> <a class="tag" taget="_blank" href="/search/Solana/1.htm">Solana</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/web3/1.htm">web3</a> <div>文章目录概要Solana的核心技术特点1.历史证明(ProofofHistory,PoH)2.混合共识机制3.低费用模型4.开发者生态5.存储模式Solanavs其他主流链的关键区别1.性能对比2.开发模型对比3.去中心化与安全性4.生态应用方向三、Solana的优缺点总结优势劣势概要Solana是近年来快速崛起的高性能区块链平台,其核心设计目标是通过技术创新突破传统区块链的性能瓶颈(如以太坊的低</div> </li> <li><a href="/article/1901238920444702720.htm" title="Java程序开发之Spring Security实战:JWT实现登录鉴权" target="_blank">Java程序开发之Spring Security实战:JWT实现登录鉴权</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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java%E5%85%A5%E9%97%A8/1.htm">java入门</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/security/1.htm">security</a> <div>一、JWT与安全认证核心原理1.JWT结构解析Header(头部){"alg":"HS256","typ":"JWT"}Payload(负载){"sub":"user123","exp":1680403200,"roles":["USER","ADMIN"]}Signature(签名)HMACSHA256(base64UrlEncode(header)+"."+base64UrlEncode(pa</div> </li> <li><a href="/article/1901238165000220672.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/%E8%A3%85%E9%A5%B0%E5%99%A8/1.htm">装饰器</a> <div>什么是装饰器?装饰器本质是一个函数,它可以在不改变原来的函数的基础上额外的增加一些功能。如常见的@classmethod,@staticmethod等都是装饰器,接下来记录下如何自定义个装饰器:刚刚说过了,装饰器的本质就是一个函数,所有想要自定义一个装饰器,首先自定义一个函数defdecorate(func):defwrapper(*args,**kwargs):print("定义一个装饰器")f</div> </li> <li><a href="/article/1901236653750546432.htm" title="Python+Peewee 中 Model 操作的常见方法" target="_blank">Python+Peewee 中 Model 操作的常见方法</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/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>Peewee是一个轻量级的PythonORM(对象关系映射)库,它允许开发者使用Python类和对象来与数据库进行交互。在Peewee中,Model是一个核心概念,代表数据库中的一张表,下面详细介绍Peewee中Model操作的常见方法。1.创建表(create_table)该方法用于在数据库中创建与Model类对应的物理表。frompeeweeimport*#连接SQLite数据库db=Sqli</div> </li> <li><a href="/article/1901236654300000256.htm" title="Python 爬虫体验心得:使用 requests 与 Spider 开启数据探索之旅" target="_blank">Python 爬虫体验心得:使用 requests 与 Spider 开启数据探索之旅</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%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/1.htm">网络爬虫</a> <div>一、引言在当今数字化信息爆炸的时代,互联网上蕴含着海量的数据资源。对于开发者、数据分析师等人群而言,如何高效地从网页中提取所需数据成为一项关键技能。Python凭借其丰富的第三方库和简洁易懂的语法,成为了开发网络爬虫的首选语言。其中,requests库为我们处理HTTP请求提供了便捷的方式,而Scrapy框架中的Spider则可以帮助我们构建复杂的爬虫逻辑。本文将带领大家逐步学习如何使用reque</div> </li> <li><a href="/article/1901236525526478848.htm" title="贵重资产跟踪和监测领域的市场机会点" target="_blank">贵重资产跟踪和监测领域的市场机会点</a> <span class="text-muted">番茄老夫子</span> <a class="tag" taget="_blank" href="/search/%E7%89%A9%E8%81%94%E7%BD%91/1.htm">物联网</a> <div>一、技术创新驱动带来的机会点随着全球卫星导航系统(GNSS)不断完善,如北斗系统的高精度定位服务愈发成熟,定位精度可达到亚米级甚至厘米级。在贵重资产运输,像高价值艺术品、精密医疗器械等领域,这种高精度定位能够实时精准掌握资产位置,防止运输途中的丢失与被盗风险,为资产所有者提供更高的安全保障,由此催生对高精度定位设备与服务的需求。室内定位技术,如基于蓝牙、Wi-Fi的定位方案不断优化,在大型仓库、物</div> </li> <li><a href="/article/1901236525971075072.htm" title="Python接入支付宝支付" target="_blank">Python接入支付宝支付</a> <span class="text-muted">I am not people</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>Python接入支付宝支付简介支付宝是一家早已在中国非常流行的在线支付服务提供商,近年来发展速度越来越快。由于支付宝提供的安全性和便利性,越来越多的用户开始在网站、移动应用程序等服务上使用支付宝支付,因此接入支付宝支付已成为许多业务的必要选择。在此文中,我们将介绍如何使用Python接入支付宝支付的基础步骤,包括:设置支付宝开发者帐号集成支付宝SDK创建支付请求向支付宝发起支付1.设置支付宝开发者</div> </li> <li><a href="/article/1901235894942232576.htm" title="python 自定义装饰器 详解" target="_blank">python 自定义装饰器 详解</a> <span class="text-muted">Panda_Boy_yi</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/%E8%87%AA%E5%AE%9A%E4%B9%89%E8%A3%85%E9%A5%B0%E5%99%A8/1.htm">自定义装饰器</a> <div>先看一个例子defdeco(func):print("beforemyfunc()called.")func()print("aftermyfunc()called.")returnfunc@decodefmyfunc():print("myfunc()called.")#myfunc=deco(myfunc)#与上面的@deco等价myfunc()print("***********")myfu</div> </li> <li><a href="/article/1901235768454606848.htm" title="install gdal in python" target="_blank">install gdal in 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/GIS/1.htm">GIS</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/gdal/1.htm">gdal</a><a class="tag" taget="_blank" href="/search/build/1.htm">build</a> <div>1.Preparespython27vcforpython27http://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msigdal1111sourcecode2.pre-installs2.1numpyinVisualC++2008commandprompt,r</div> </li> <li><a href="/article/1901231480470827008.htm" title="Alipay SDK for Python 常见问题解决方案" target="_blank">Alipay SDK for Python 常见问题解决方案</a> <span class="text-muted">丁璟耀Optimistic</span> <div>AlipaySDKforPython常见问题解决方案alipay-sdk-python-all支付宝开放平台AlipaySDKforPython项目地址:https://gitcode.com/gh_mirrors/al/alipay-sdk-python-all1.项目基础介绍和主要编程语言AlipaySDKforPython是支付宝官方提供的Python语言版本的SDK,用于帮助开发者快速接入</div> </li> <li><a href="/article/1901231480969949184.htm" title="支付宝Python SDK官方教程" target="_blank">支付宝Python SDK官方教程</a> <span class="text-muted">滕妙奇</span> <div>支付宝PythonSDK官方教程alipay-sdk-python-all支付宝开放平台AlipaySDKforPython项目地址:https://gitcode.com/gh_mirrors/al/alipay-sdk-python-all1.项目介绍alipay-sdk-python-all是支付宝提供的Python版本SDK,用于帮助开发者方便地集成到自己的应用程序中,实现与支付宝开放平台</div> </li> <li><a href="/article/1901228451285757952.htm" title="如何使用Jsoup提取商品信息:实战指南" target="_blank">如何使用Jsoup提取商品信息:实战指南</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/java/1.htm">java</a> <div>在使用Java进行Web爬虫开发时,Jsoup是一个非常强大的HTML解析库,可以帮助你轻松地提取网页中的数据。本文将详细介绍如何使用Jsoup提取商品信息,包括商品标题、价格、描述和图片链接等。一、环境准备(一)Java开发环境确保你的系统中已安装Java开发环境,推荐使用JDK11或更高版本。(二)安装所需库使用Maven管理项目依赖,主要包括以下库:Jsoup:用于解析HTML内容。在pom</div> </li> <li><a href="/article/1901226939776036864.htm" title="YOLO优化之扫描融合模块(SimVSS Block)" target="_blank">YOLO优化之扫描融合模块(SimVSS Block)</a> <span class="text-muted">清风AI</span> <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/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E8%B7%9F%E8%B8%AA/1.htm">目标跟踪</a> <div>研究背景在自动驾驶技术快速发展的背景下,目标检测作为其核心组成部分面临着严峻挑战。驾驶场景中目标尺度和大小的巨大差异,以及视觉特征不显著且易受噪声干扰的问题,对辅助驾驶系统的安全性构成了潜在威胁。传统的卷积神经网络(CNN)虽然在目标检测领域取得了显著进展,但仍存在局限性,如局部关注性导致难以有效检测不同尺度的目标。为克服这些问题,研究人员开始探索将状态空间模型(SSM)引入目标检测领域,以期提高</div> </li> <li><a href="/article/1901226436069486592.htm" title="一览无遗 python 自定义装饰器使用及原理详解" target="_blank">一览无遗 python 自定义装饰器使用及原理详解</a> <span class="text-muted">1_bit</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</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/%E8%A3%85%E9%A5%B0%E5%99%A8/1.htm">装饰器</a> <div>注意:先行知识python,本篇文章所有代码均为实际运行,为原理和逻辑讲解一、装饰器装饰器是python中的一种语法糖,虽然我不想用语法糖这个词来表达,但这句话写在了开头,我也不到用别的更准确的词来形容他了。如果你刚接触编程不久,不理解语法糖,也没关系;在这里我说语法糖并不会影响到你接下来的理解,我只是用它在赘述,作为了一种形容词。首先我们要搞懂装饰器是什么东西,其次搞懂装饰器的基础知识点,最后逐</div> </li> <li><a href="/article/1901225552321245184.htm" title="linux变量TMOUT" target="_blank">linux变量TMOUT</a> <span class="text-muted">小黑要上天</span> <a class="tag" taget="_blank" href="/search/linux%E5%B0%8F%E5%B8%B8%E8%AF%86/1.htm">linux小常识</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/TMOUT/1.htm">TMOUT</a> <div>在linux中,TMOUT变量用于设置shell的超时时间。如果用户在指定的时间内没有任何操作,shell会自动注销或终止。工作原理:1.当设置了TMOUT,如何用户在指定的时间内没有任何输入,shell会自动退出,终端会话结束。2.TMOUT适用于交互式shell,也就是说,它在用户与shell进行交互时有效。适用场景:1.主要用户增强系统安全性,防止长期无人操作的会话占用资源。2.对于远程登录</div> </li> <li><a href="/article/1901223537914474496.htm" title="Axure RP从入门到精通(五十七) 灵魂提问 - 写PRD需求文档是使用Word文档还是Axure?" target="_blank">Axure RP从入门到精通(五十七) 灵魂提问 - 写PRD需求文档是使用Word文档还是Axure?</a> <span class="text-muted">风流 少年</span> <a class="tag" taget="_blank" href="/search/Axure/1.htm">Axure</a><a class="tag" taget="_blank" href="/search/RP/1.htm">RP</a><a class="tag" taget="_blank" href="/search/%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/1.htm">从入门到精通</a><a class="tag" taget="_blank" href="/search/axure/1.htm">axure</a> <div>在实际工作中有些公司使用Word文档来写需求文档(一般是大公司),有些公司使用Axure来写需求文档,他们习惯在画原型的时候在旁边写需求,并用辅助线来连接需求说明和对应的功能(组件),那么我们应该如何选择使用方式???一:使用Word文档写需求文档的优劣势1.1优势方便存档,方便交接和传播(传递);方便习惯使用Word文档的技术人员;方便发邮件做报告;还对于一些有较复杂流程,需要用到各种图示的产品</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>