python新手实践1——使用scrapy爬取dmoz目录

本文参考借鉴scrapy官方教程和小甲鱼python教程

之前安装好了scrapy,现在开始试着进行一个小任务:

爬取dmoz上的一个网页:

'http://www.dmoztools.net/Computers/Programming/Languages/Python/Books/' 'http://www.dmoztools.net/Computers/Programming/Languages/Python/Resources/

Scarpy爬取网站的四个步骤:

1 创建Scarpy项目
2 定义Item容器
3 编写爬虫
4 存储内容

python新手实践1——使用scrapy爬取dmoz目录_第1张图片
Scarpy框架

第一步:创建创建Scarpy项目

在cmd中输入:
scrapy startproject SpiderNO1

python新手实践1——使用scrapy爬取dmoz目录_第2张图片
输入后的结果

此时桌面生成一个文件夹
spider文件夹

其中scrapy.cfg为项目配置文件,默认保存即可;

(1)子文件夹SpiderNO1中存放着模块的代码
(2)SpiderNO1 /: 项目python模块, 之后您将在此加入代码
(3)SpiderNO1 /items.py: 项目items文件
(4)SpiderNO1 /pipelines.py: 项目管道文件
(5)SpiderNO1 /settings.py: 项目配置文件
(6)SpiderNO1 /spiders: 放置spider的目录

第二步:定义Item容器

  • Item是保存爬取到的内容的容器,其使用方法和python字典类似,并且提供了额外的保护机制来避免拼写错误导致的未定义字段错误。
  • 然后是对自己需要的数据进行建模。编辑SpiderNO1中的items.py
class DmozItem(scrapy.Item):
    # define the fields for your item here like:
        # name = scrapy.Field()
        title = scrapy.Field()   #标题
        link = scrapy.Field()    #链接
        desc = scrapy.Field()    #描述

保存关闭

第三步:编写爬虫

  • 编写Spider,Spider是用户编写用于从网站上爬取数据的类,其中包含用于下载的初始URL,然后是如何跟进网页中的链接以及如何分析页面中的内容,还有提取item的方法。
  • 创建一个名为“dmoz_spider.py”的文件
import scrapy

class DmozSpider(scrapy.Spider):
    name = "dmoz"                   #蜘蛛编号,唯一
    allowed_domains = [' http://www.dmoztools.net']     #蜘蛛爬取的范围          
    start_urls = ['http://www.dmoztools.net/Computers/Programming/Languages/Python/Books/',
 'http://www.dmoztools.net/Computers/Programming/Languages/Python/Resources/']  #爬取网址

    def parse(self,response):           #定义分析方法
        filename = response.url.split("/")[-2]
        with open(filename,'wb') as f:
            f.write(response.body)

接下来试一试蜘蛛能不能正常工作:
在cmd中进入工程SpiderNO1文件夹,输入命令scrapy crawl dmoz
我这里出了问题,报错

缺少win32api

ModuleNotFoundError:No module named ‘win32api’

只需要用pip安装一下 pypiwin32即可

安装pypiwin32

...


安装过程

出现

python新手实践1——使用scrapy爬取dmoz目录_第3张图片
安装结果

并且同时在项目文件夹中产生了

生成了网页代码

两个文件,打开后发现是两个网页的审查元素代码。
以上就是“爬”的过程
之后就是从上面生成的Books文件和Resources文件中找出 title、link、desc然后分别保存起来。
提取过程使用一种基于XPath和CSS的表达式机制:Scrapy Selectors。
Selectors是一个选择器,它有四个基本方法:

(1) xpath()——传入xpath表达式,返回该表达式所对应的所有节点的selector list列表。
(2) css()——传入CSS表达式,返回该表达式所对应的所有节点的selector list列表。
(3) extract()——序列化该节点为unicode字符串并返回list
(4) re()——根据传入的正则表达式对数据进行提取,返回unicode字符串list列表

在cmd中进入根文件夹,运行指令
scrapy shell “http://www.dmoztools.net/Computers/Programming/Languages/Python/Books/”
结果为以下代码

python新手实践1——使用scrapy爬取dmoz目录_第4张图片
shell

此时就得到了response的回应,就可以通过shell对其进行操作,如response.body就是全部网页的代码,response.headers就是网页的头,接下来通过selector选择器,对body中的内容进行分析提取,将用到

response.selector.xpath()
response.selector.css()
response.selector.extract()
response.selector.re
()这四个方法

XPath

XPath是一门在网页中查找特定信息的语言,用它来筛选数据更准确方便高效。
/html/head/title——选择HTML文档中标签内的元素。<br> /html/head/title/text()——选择上面提到的<title>元素的文字<br> //td——选择所有的<td>元素。<br> //div[@class=“mine”]——选择所有具有class=“mine”属性的div元素<br> 在cmd中继续输入<br> <code>response.xpath(‘//title’)</code><br> 返回一个selector对象的<strong>列表</strong><br> </p> <div class="image-package"> <div class="image-container" style="max-width: 554px; max-height: 29px;"> <div class="image-view"> <img src="http://img.e-com-net.com/image/info10/a5cc851254e442cf9f3957274b761423.jpg" width="554" height="29"> </div> </div> <div class="image-caption"> 返回selector </div> </div> <br> 使用 <br> <code>response.xpath(‘//title’).extract()</code>将列表字符串化 <p></p> <p></p> <div class="image-package"> <div class="image-container" style="max-width: 554px; max-height: 27px;"> <div class="image-view"> <img src="http://img.e-com-net.com/image/info10/5bbe345bfd2449debaaa3057f1e391b3.jpg" width="554" height="27"> </div> </div> <div class="image-caption"> 列表字符串化 </div> </div> <br> 不想要(title)的标签,就加入 <strong>/text()</strong>就可以,即 <br> <code>response.xpath('//title/text()').extract()</code> <p></p> <h4>第四步:提取数据</h4> <h5>1、 由网页审查元素可知,</h5> <p></p> <div class="image-package"> <div class="image-container" style="max-width: 554px; max-height: 284px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/9ead41d2ea2e450fb7031691527ba862.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/9ead41d2ea2e450fb7031691527ba862.jpg" width="554" height="284" alt="python新手实践1——使用scrapy爬取dmoz目录_第5张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> F12审查元素 </div> </div> <br> 我们要提取的所有信息全都在在 <strong>class=“title-and-desc”</strong>的标签中,描述在其/div中,链接在a标签href中,标题在a标签的div中。 <br> <strong>标题</strong>:在shell中输入 <br> <code>response.xpath('//div[@class=" title-and-desc"]/a/div/text()').extract()</code> <br> 得到所有的标题,如下图(sel.xpath也可以得到下图) <p></p> <p></p> <div class="image-package"> <div class="image-container" style="max-width: 638px; max-height: 173px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/25983c30d6204f36bbad54c2e0907f0d.png" target="_blank"><img src="http://img.e-com-net.com/image/info10/25983c30d6204f36bbad54c2e0907f0d.png" width="638" height="173" alt="python新手实践1——使用scrapy爬取dmoz目录_第6张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> 标题信息 </div> </div> <br> <strong>描述</strong>:在shell中输入 <br> <code>response.xpath(‘//div[@class=” title-and-desc ”]/div/text()’).extract()</code> <br> 得到所有的描述,如下图(sel.xpath也可以得到下图) <p></p> <p></p> <div class="image-package"> <div class="image-container" style="max-width: 645px; max-height: 241px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/36f599cd42d2474590ff2af90a60393f.png" target="_blank"><img src="http://img.e-com-net.com/image/info10/36f599cd42d2474590ff2af90a60393f.png" width="645" height="241" alt="python新手实践1——使用scrapy爬取dmoz目录_第7张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> 描述信息 </div> </div> <br> … <br> <strong>链接</strong>:在shell中输入 <br> <code>response.xpath(‘//div[@class=”title-and-desc”]//a/@href’).extract()</code> <br> 得到所有的链接,如下图(sel.xpath也可以得到下图),提取a标签下的href标签需要使用@href <p></p> <div class="image-package"> <div class="image-container" style="max-width: 643px; max-height: 200px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/a18e388da45e4f49a944a45a0e3b940c.png" target="_blank"><img src="http://img.e-com-net.com/image/info10/a18e388da45e4f49a944a45a0e3b940c.png" width="643" height="200" alt="python新手实践1——使用scrapy爬取dmoz目录_第8张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> 链接信息 </div> </div> <br> <p>使用for循环依次打印title</p> <pre><code>sites = sel.xpath(‘//div[@class=”title-and-desc”]’) for site in sites: title = site.xpath(‘a/div/text()’) .extract() link = site.xpath(‘a/@href’) .extract() desc = site.xpath(‘div/text()’) .extract() print(title,link,desc) </code></pre> <p></p> <div class="image-package"> <div class="image-container" style="max-width: 645px; max-height: 478px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/9f3a8aeeb105463f86e30ed81f8ab533.png" target="_blank"><img src="http://img.e-com-net.com/image/info10/9f3a8aeeb105463f86e30ed81f8ab533.png" width="645" height="478" alt="python新手实践1——使用scrapy爬取dmoz目录_第9张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> 有效信息提取成功 </div> </div> <br> <strong>验证成功</strong>,把它放回dmoz_spider.py的parse()方法 <p></p> <pre><code>def parse(self,response): sel = scrapy.selector.Selector(response) #shell帮我们初始化好sel,这里我们需要自己将其初始化 sites = sel.xpath('//div[@class="title-and-desc"]') for site in sites: title = site.xpath('a/div/text()').extract() link = site.xpath('a/@href').extract() desc = site.xpath('div/text()').extract() print(title,link,desc) </code></pre> <p>在cmd中运行<code>scrapy crawl dmoz</code><br> 如果报错</p> <div class="image-package"> <div class="image-container" style="max-width: 625px; max-height: 27px;"> <div class="image-view"> <img src="http://img.e-com-net.com/image/info10/fc960949d8354707a4ca29b47befdd9f.png" width="625" height="27"> </div> </div> <div class="image-caption"> 错误信息 </div> </div> <p>把循环体内的语句空格删掉,重新换行即可<br> 正常运行结果(部分运行图):</p> <div class="image-package"> <div class="image-container" style="max-width: 636px; max-height: 422px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/9d9581f666314aaa821943a33a7138e6.png" target="_blank"><img src="http://img.e-com-net.com/image/info10/9d9581f666314aaa821943a33a7138e6.png" width="636" height="422" alt="python新手实践1——使用scrapy爬取dmoz目录_第10张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> 正常运行结果(部分运行图) </div> </div> <br> <p>可见我们需要的东西全部找出来了。</p> <h4>第五步:存储最后的结果</h4> <p>使用之前提到的item容器,将爬取的结果进行存储。<br> Spider代码为:</p> <pre><code>import scrapy from SpiderNO1.items import DmozItem #导入items class DmozSpider(scrapy.Spider): name = "dmoz" allowed_domains = ['www.dmoztools.net'] start_urls = ['http://www.dmoztools.net/Computers/Programming/Languages/Python/Books/' ,'http://www.dmoztools.net/Computers/Programming/Languages/Python/Resources/'] def parse(self,response): #shell帮我们初始化好sel,这里我们需要自己将其初始化 sel = scrapy.selector.Selector(response) sites = sel.xpath('//div[@class="title-and-desc"]') items = [] for site in sites: item = DmozItem() item['title'] = site.xpath('a/div/text()').extract() item['link'] = site.xpath('a/@href').extract() item['desc'] = site.xpath('div/text()').extract() items.append(item) return items </code></pre> <p>在cmd中使用<br> <code>scrapy crawl dmoz –o items.json –t json</code><br> 导出JSON格式文件<br> -o后面是文件名 –t指定导出类型<br> 之后在根目录下就会出现items.json的文件</p> <div class="image-package"> <div class="image-container" style="max-width: 489px; max-height: 91px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/95d6232d021f469fb82d2ad4f8909b52.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/95d6232d021f469fb82d2ad4f8909b52.jpg" width="489" height="91"></a> </div> </div> <div class="image-caption"> 生成了json文件 </div> </div> <div class="image-package"> <div class="image-container" style="max-width: 698px; max-height: 237px;"> <div class="image-view"> <a href="http://img.e-com-net.com/image/info10/eed57f0eb2ad4de4bd545aab385603da.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info10/eed57f0eb2ad4de4bd545aab385603da.jpg" width="650" height="221" alt="python新手实践1——使用scrapy爬取dmoz目录_第11张图片" style="border:1px solid black;"></a> </div> </div> <div class="image-caption"> 文件详情 </div> </div> <p><strong>至此一个简单的爬虫就结束啦!</strong></p> <p><strong>本博客所有文章均为作者原创,享有版权所有权,未经许可,严禁转载或修改!</strong></p> </article> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1281922532017979392"></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新手实践1——使用scrapy爬取dmoz目录)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835514462770130944.htm" title="斤斤计较的婚姻到底有多难?" target="_blank">斤斤计较的婚姻到底有多难?</a> <span class="text-muted">白心之岂必有为</span> <div>很多人私聊我会问到在哪个人群当中斤斤计较的人最多?我都会回答他,一般婚姻出现问题的斤斤计较的人士会非常多,以我多年经验,在婚姻落的一塌糊涂的人当中,斤斤计较的人数占比在20~30%以上,也就是说10个婚姻出现问题的斤斤计较的人有2-3个有多不减。在婚姻出问题当中,有大量的心理不平衡的、尖酸刻薄的怨妇。在婚姻中仅斤斤计较有两种类型:第一种是物质上的,另一种是精神上的。在物质与精神上抠门已经严重的影响</div> </li> <li><a href="/article/1835513803861749760.htm" title="机器学习与深度学习间关系与区别" target="_blank">机器学习与深度学习间关系与区别</a> <span class="text-muted">ℒℴѵℯ心·动ꦿ໊ོ꫞</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/%E5%AD%A6%E4%B9%A0/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/python/1.htm">python</a> <div>一、机器学习概述定义机器学习(MachineLearning,ML)是一种通过数据驱动的方法,利用统计学和计算算法来训练模型,使计算机能够从数据中学习并自动进行预测或决策。机器学习通过分析大量数据样本,识别其中的模式和规律,从而对新的数据进行判断。其核心在于通过训练过程,让模型不断优化和提升其预测准确性。主要类型1.监督学习(SupervisedLearning)监督学习是指在训练数据集中包含输入</div> </li> <li><a href="/article/1835513699826233344.htm" title="android系统selinux中添加新属性property" target="_blank">android系统selinux中添加新属性property</a> <span class="text-muted">辉色投像</span> <div>1.定位/android/system/sepolicy/private/property_contexts声明属性开头:persist.charge声明属性类型:u:object_r:system_prop:s0图12.定位到android/system/sepolicy/public/domain.te删除neverallow{domain-init}default_prop:property</div> </li> <li><a href="/article/1835513570171908096.htm" title="底层逆袭到底有多难,不甘平凡的你准备好了吗?让吴起给你说说" target="_blank">底层逆袭到底有多难,不甘平凡的你准备好了吗?让吴起给你说说</a> <span class="text-muted">造命者说</span> <div>底层逆袭到底有多难,不甘平凡的你准备好了吗?让吴起给你说说我叫吴起,生于公元前440年的战国初期,正是群雄并起、天下纷争不断的时候。后人说我是军事家、政治家、改革家,是兵家代表人物。评价我一生历仕鲁、魏、楚三国,通晓兵家、法家、儒家三家思想,在内政军事上都有极高的成就。周安王二十一年(公元前381年),因变法得罪守旧贵族,被人乱箭射死。我出生在卫国一个“家累万金”的富有家庭,从年轻时候起就不甘平凡</div> </li> <li><a href="/article/1835513571501502464.htm" title="2020-01-25" target="_blank">2020-01-25</a> <span class="text-muted">晴岚85</span> <div>郑海燕坚持分享590天2020.1.24在生活中只存在两个问题。一个问题是:你知道想要达成的目标是什么,但却不知道如何才能达成;另一个问题是:你不知道你的目标是什么。前一个是行动的问题,后一个是结果的问题。通过制定具体的下一步行动,可以解决不知道如何开始行动的问题。而通过去想象结果,对结果做预估,可以解决找不着目标的问题。对于所有吸引我们注意力,想要完成的任务,你可以先想象一下,预期的结果究竟是什</div> </li> <li><a href="/article/1835513424734416896.htm" title="UI学习——cell的复用和自定义cell" target="_blank">UI学习——cell的复用和自定义cell</a> <span class="text-muted">Magnetic_h</span> <a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>目录cell的复用手动(非注册)自动(注册)自定义cellcell的复用在iOS开发中,单元格复用是一种提高表格(UITableView)和集合视图(UICollectionView)滚动性能的技术。当一个UITableViewCell或UICollectionViewCell首次需要显示时,如果没有可复用的单元格,则视图会创建一个新的单元格。一旦这个单元格滚动出屏幕,它就不会被销毁。相反,它被添</div> </li> <li><a href="/article/1835512920797179904.htm" title="element实现动态路由+面包屑" target="_blank">element实现动态路由+面包屑</a> <span class="text-muted">软件技术NINI</span> <a class="tag" taget="_blank" href="/search/vue%E6%A1%88%E4%BE%8B/1.htm">vue案例</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>el-breadcrumb是ElementUI组件库中的一个面包屑导航组件,它用于显示当前页面的路径,帮助用户快速理解和导航到应用的各个部分。在Vue.js项目中,如果你已经安装了ElementUI,就可以很方便地使用el-breadcrumb组件。以下是一个基本的使用示例:安装ElementUI(如果你还没有安装的话):你可以通过npm或yarn来安装ElementUI。bash复制代码npmi</div> </li> <li><a href="/article/1835512809883004928.htm" title="10月|愿你的青春不负梦想-读书笔记-01" target="_blank">10月|愿你的青春不负梦想-读书笔记-01</a> <span class="text-muted">Tracy的小书斋</span> <div>本书的作者是俞敏洪,大家都很熟悉他了吧。俞敏洪老师是我行业的领头羊吧,也是我事业上的偶像。本日摘录他书中第一章中的金句:『一个人如果什么目标都没有,就会浑浑噩噩,感觉生命中缺少能量。能给我们能量的,是对未来的期待。第一件事,我始终为了进步而努力。与其追寻全世界的骏马,不如种植丰美的草原,到时骏马自然会来。第二件事,我始终有阶段性的目标。什么东西能给我能量?答案是对未来的期待。』读到这里的时候,我便</div> </li> <li><a href="/article/1835512542735200256.htm" title="C语言宏函数" target="_blank">C语言宏函数</a> <span class="text-muted">南林yan</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/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>一、什么是宏函数?通过宏定义的函数是宏函数。如下,编译器在预处理阶段会将Add(x,y)替换为((x)*(y))#defineAdd(x,y)((x)*(y))#defineAdd(x,y)((x)*(y))intmain(){inta=10;intb=20;intd=10;intc=Add(a+d,b)*2;cout<<c<<endl;//800return0;}二、为什么要使用宏函数使用宏函数</div> </li> <li><a href="/article/1835512178023690240.htm" title="谢谢你们,爱你们!" target="_blank">谢谢你们,爱你们!</a> <span class="text-muted">鹿游儿</span> <div>昨天家人去泡温泉,二个孩子也带着去,出发前一晚,匆匆下班,赶回家和孩子一起收拾。饭后,我拿出笔和本子(上次去澳门时做手帐的本子)写下了1\2\3\4\5\6\7\8\9,让后让小壹去思考,带什么出发去旅游呢?她在对应的数字旁边画上了,泳衣、泳圈、肖恩、内衣内裤、tapuy、拖鞋……画完后,就让她自己对着这个本子,将要带的,一一带上,没想到这次带的书还是这本《便便工厂》(晚上姑婆发照片过来,妹妹累得</div> </li> <li><a href="/article/1835511911769272320.htm" title="C语言如何定义宏函数?" target="_blank">C语言如何定义宏函数?</a> <span class="text-muted">小九格物</span> <a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>在C语言中,宏函数是通过预处理器定义的,它在编译之前替换代码中的宏调用。宏函数可以模拟函数的行为,但它们不是真正的函数,因为它们在编译时不会进行类型检查,也不会分配存储空间。宏函数的定义通常使用#define指令,后面跟着宏的名称和参数列表,以及宏展开后的代码。宏函数的定义方式:1.基本宏函数:这是最简单的宏函数形式,它直接定义一个表达式。#defineSQUARE(x)((x)*(x))2.带参</div> </li> <li><a href="/article/1835511912192897024.htm" title="微服务下功能权限与数据权限的设计与实现" target="_blank">微服务下功能权限与数据权限的设计与实现</a> <span class="text-muted">nbsaas-boot</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>在微服务架构下,系统的功能权限和数据权限控制显得尤为重要。随着系统规模的扩大和微服务数量的增加,如何保证不同用户和服务之间的访问权限准确、细粒度地控制,成为设计安全策略的关键。本文将讨论如何在微服务体系中设计和实现功能权限与数据权限控制。1.功能权限与数据权限的定义功能权限:指用户或系统角色对特定功能的访问权限。通常是某个用户角色能否执行某个操作,比如查看订单、创建订单、修改用户资料等。数据权限:</div> </li> <li><a href="/article/1835511912843014144.htm" title="理解Gunicorn:Python WSGI服务器的基石" target="_blank">理解Gunicorn:Python WSGI服务器的基石</a> <span class="text-muted">范范0825</span> <a class="tag" taget="_blank" href="/search/ipython/1.htm">ipython</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> <div>理解Gunicorn:PythonWSGI服务器的基石介绍Gunicorn,全称GreenUnicorn,是一个为PythonWSGI(WebServerGatewayInterface)应用设计的高效、轻量级HTTP服务器。作为PythonWeb应用部署的常用工具,Gunicorn以其高性能和易用性著称。本文将介绍Gunicorn的基本概念、安装和配置,帮助初学者快速上手。1.什么是Gunico</div> </li> <li><a href="/article/1835511163450912768.htm" title="2021年12月19日,春蕾教育集团团建活动感受——黄晓丹" target="_blank">2021年12月19日,春蕾教育集团团建活动感受——黄晓丹</a> <span class="text-muted">黄错错加油</span> <div>感受:1.从陌生到熟悉的过程。游戏环节让我们在轻松的氛围中得到了锻炼,也增长了不少知识。2.游戏过程中,我们贡献的是个人力量,展现的是团队的力量。它磨合的往往不止是工作的熟悉,更是观念上契合度的贴近。3.这和工作是一样的道理。在各自的岗位上,每个人摆正自己的位置、各司其职充分发挥才能,并团结一致劲往一处使,才能实现最大的成功。新知:1.团队精神需要不断地创新。过去,人们把创新看作是冒风险,现在人们</div> </li> <li><a href="/article/1835511036317364224.htm" title="Cell Insight | 单细胞测序技术又一新发现,可用于HIV-1和Mtb共感染个体诊断" target="_blank">Cell Insight | 单细胞测序技术又一新发现,可用于HIV-1和Mtb共感染个体诊断</a> <span class="text-muted">尐尐呅</span> <div>结核病是艾滋病合并其他疾病中导致患者死亡的主要原因。其中结核病由结核分枝杆菌(Mycobacteriumtuberculosis,Mtb)感染引起,获得性免疫缺陷综合症(艾滋病)由人免疫缺陷病毒(Humanimmunodeficiencyvirustype1,HIV-1)感染引起。国家感染性疾病临床医学研究中心/深圳市第三人民医院张国良团队携手深圳华大生命科学研究院吴靓团队,共同研究得出单细胞测序</div> </li> <li><a href="/article/1835511030260789248.htm" title="c++ 的iostream 和 c++的stdio的区别和联系" target="_blank">c++ 的iostream 和 c++的stdio的区别和联系</a> <span class="text-muted">黄卷青灯77</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/iostream/1.htm">iostream</a><a class="tag" taget="_blank" href="/search/stdio/1.htm">stdio</a> <div>在C++中,iostream和C语言的stdio.h都是用于处理输入输出的库,但它们在设计、用法和功能上有许多不同。以下是两者的区别和联系:区别1.编程风格iostream(C++风格):C++标准库中的输入输出流类库,支持面向对象的输入输出操作。典型用法是cin(输入)和cout(输出),使用>操作符来处理数据。更加类型安全,支持用户自定义类型的输入输出。#includeintmain(){in</div> </li> <li><a href="/article/1835510025561403392.htm" title="《投行人生》读书笔记" target="_blank">《投行人生》读书笔记</a> <span class="text-muted">小蘑菇的树洞</span> <div>《投行人生》----作者詹姆斯-A-朗德摩根斯坦利副主席40年的职业洞见-很短小精悍的篇幅,比较适合初入职场的新人。第一部分成功的职业生涯需要规划1.情商归为适应能力分享与协作同理心适应能力,更多的是自我意识,你有能力识别自己的情并分辨这些情绪如何影响你的思想和行为。2.对于初入职场的人的建议,细节,截止日期和数据很重要截止日期,一种有效的方法是请老板为你所有的任务进行优先级排序。和老板喝咖啡的好</div> </li> <li><a href="/article/1835509898507546624.htm" title="《策划经理回忆录之二》" target="_blank">《策划经理回忆录之二》</a> <span class="text-muted">路基雅虎</span> <div>话说三年变六年,飘了,飘了……眨眼,2013年5月,老吴回到了他的家乡——油城从新开启他的工作幻想症生涯。很庆幸,这是一家很有追求,同时敢于尝试的,且实力不容低调的新星房企——金源置业(前身泰源置业)更值得庆幸的是第一个盘就是油城十路的标杆之一:金源盛世。2013年5月,到2015年11月,两年的陪伴,迎来了一场大爆发。2000个筹,5万/筹,直接回笼1个亿!!!这……让我开始认真审视这座看似五线</div> </li> <li><a href="/article/1835509897106649088.htm" title="Long类型前后端数据不一致" target="_blank">Long类型前后端数据不一致</a> <span class="text-muted">igotyback</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问</div> </li> <li><a href="/article/1835509390879322112.htm" title="扫地机类清洁产品之直流无刷电机控制" target="_blank">扫地机类清洁产品之直流无刷电机控制</a> <span class="text-muted">悟空胆好小</span> <a class="tag" taget="_blank" href="/search/%E6%B8%85%E6%B4%81%E6%9C%8D%E5%8A%A1%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">清洁服务机器人</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>扫地机类清洁产品之直流无刷电机控制1.1前言扫地机产品有很多的电机控制,滚刷电机1个,边刷电机1-2个,清水泵电机,风机一个,部分中高端产品支持抹布功能,也就是存在抹布盘电机,还有追觅科沃斯石头等边刷抬升电机,滚刷抬升电机等的,这些电机有直流有刷电机,直接无刷电机,步进电机,电磁阀,挪动泵等不同类型。电机的原理,驱动控制方式也不行。接下来一段时间的几个文章会作个专题分析分享。直流有刷电机会自动持续</div> </li> <li><a href="/article/1835509391361667072.htm" title="Linux下QT开发的动态库界面弹出操作(SDL2)" target="_blank">Linux下QT开发的动态库界面弹出操作(SDL2)</a> <span class="text-muted">13jjyao</span> <a class="tag" taget="_blank" href="/search/QT%E7%B1%BB/1.htm">QT类</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</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/sdl2/1.htm">sdl2</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>需求:操作系统为linux,开发框架为qt,做成需带界面的qt动态库,调用方为java等非qt程序难点:调用方为java等非qt程序,也就是说调用方肯定不带QApplication::exec(),缺少了这个,QTimer等事件和QT创建的窗口将不能弹出(包括opencv也是不能弹出);这与qt调用本身qt库是有本质的区别的思路:1.调用方缺QApplication::exec(),那么我们在接口</div> </li> <li><a href="/article/1835509266627260416.htm" title="绘本讲师训练营【24期】8/21阅读原创《独生小孩》" target="_blank">绘本讲师训练营【24期】8/21阅读原创《独生小孩》</a> <span class="text-muted">1784e22615e0</span> <div>24016-孟娟《独生小孩》图片发自App今天我想分享一个蛮特别的绘本,讲的是一个特殊的群体,我也是属于这个群体,80后的独生小孩。这是一本中国绘本,作者郭婧,也是一个80厚。全书一百多页,均为铅笔绘制,虽然为黑白色调,但并不显得沉闷。全书没有文字,犹如“默片”,但并不影响读者对该作品的理解,反而显得神秘,梦幻,給读者留下想象的空间。作者在前蝴蝶页这样写到:“我更希望父母和孩子一起分享这本书,使他</div> </li> <li><a href="/article/1835508761310097408.htm" title="店群合一模式下的社区团购新发展——结合链动 2+1 模式、AI 智能名片与 S2B2C 商城小程序源码" target="_blank">店群合一模式下的社区团购新发展——结合链动 2+1 模式、AI 智能名片与 S2B2C 商城小程序源码</a> <span class="text-muted">说私域</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/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a> <div>摘要:本文探讨了店群合一的社区团购平台在当今商业环境中的重要性和优势。通过分析店群合一模式如何将互联网社群与线下终端紧密结合,阐述了链动2+1模式、AI智能名片和S2B2C商城小程序源码在这一模式中的应用价值。这些创新元素的结合为社区团购带来了新的机遇,提升了用户信任感、拓展了营销渠道,并实现了线上线下的完美融合。一、引言随着互联网技术的不断发展,社区团购作为一种新兴的商业模式,在满足消费者日常需</div> </li> <li><a href="/article/1835508758042734592.htm" title="我校举行新老教师师徒结对仪式暨名师专业工作室工作交流活动" target="_blank">我校举行新老教师师徒结对仪式暨名师专业工作室工作交流活动</a> <span class="text-muted">李蕾1229</span> <div>为促进我校教师专业发展,发挥骨干教师的引领带头作用,11月6日下午,我校举行新老教师师徒结对仪式暨名师专业工作室工作交流活动。图片发自App会议由教师发展处李蕾主任主持,首先,由范校长宣读新老教师结对名单及双方承担职责。随后,两位新调入教师陈玉萍、莫正杰分别和他们的师傅鲍元美、刘召彬老师签订了师徒结对协议书。图片发自App图片发自App师徒拥抱、握手。有了师傅就有了目标有了方向,相信两位新教师在师</div> </li> <li><a href="/article/1835508630959517696.htm" title="向内而求" target="_blank">向内而求</a> <span class="text-muted">陈陈_19b4</span> <div>10月27日,阴。阅读书目:《次第花开》。作者:希阿荣博堪布,是当今藏传佛家宁玛派最伟大的上师法王,如意宝晋美彭措仁波切颇具影响力的弟子之一。多年以来,赴海内外各地弘扬佛法,以正式授课、现场开示、发表文章等多种方法指导佛学弟子修行佛法。代表作《寂静之道》、《生命这出戏》、《透过佛法看世界》自出版以来一直是佛教类书籍中的畅销书。图片发自App金句:1.佛陀说,一切痛苦的根源在于我们长期以来对自身及外</div> </li> <li><a href="/article/1835508376604340224.htm" title="2021-08-26" target="_blank">2021-08-26</a> <span class="text-muted">影幽</span> <div>在生活中,女人与男人的感悟往往有所不同。人生最大的舞台就是生活,大幕随时都可能拉开,关键是你愿不愿意表演都无法躲避。在生活中,遇事不要急躁,不要急于下结论,尤其生气时不要做决断,要学会换位思考,大事化小小事化了,把复杂的事情尽量简单处理,千万不要把简单的事情复杂化。永远不要扭曲,别人善意,无药可救。昨天是张过期的支票,明天是张信用卡,只有今天才是现金,要善加利用!执着的攀登者不必去与别人比较自己的</div> </li> <li><a href="/article/1835508130268672000.htm" title="消息中间件有哪些常见类型" target="_blank">消息中间件有哪些常见类型</a> <span class="text-muted">xmh-sxh-1314</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>消息中间件根据其设计理念和用途,可以大致分为以下几种常见类型:点对点消息队列(Point-to-PointMessagingQueues):在这种模型中,消息被发送到特定的队列中,消费者从队列中取出并处理消息。队列中的消息只能被一个消费者消费,消费后即被删除。常见的实现包括IBM的MQSeries、RabbitMQ的部分使用场景等。适用于任务分发、负载均衡等场景。发布/订阅消息模型(Pub/Sub</div> </li> <li><a href="/article/1835508130608410624.htm" title="html 中如何使用 uniapp 的部分方法" target="_blank">html 中如何使用 uniapp 的部分方法</a> <span class="text-muted">某公司摸鱼前端</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>示例代码:Documentconsole.log(window);效果展示:好了,现在就可以uni.使用相关的方法了</div> </li> <li><a href="/article/1835508131032035328.htm" title="ArcGIS栅格计算器常见公式(赋值、0和空值的转换、补充栅格空值)" target="_blank">ArcGIS栅格计算器常见公式(赋值、0和空值的转换、补充栅格空值)</a> <span class="text-muted">研学随笔</span> <a class="tag" taget="_blank" href="/search/arcgis/1.htm">arcgis</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a> <div>我们在使用ArcGIS时通常经常用到栅格计算器,今天主要给大家介绍我日常中经常用到的几个公式,供大家参考学习。将特定值(-9999)赋值为0,例如-9999.Con("raster"==-9999,0,"raster")2.给空值赋予特定的值(如0)Con(IsNull("raster"),0,"raster")3.将特定的栅格值(如1)赋值为空值,其他保留原值SetNull("raster"==</div> </li> <li><a href="/article/1835508131489214464.htm" title="高级编程--XML+socket练习题" target="_blank">高级编程--XML+socket练习题</a> <span class="text-muted">masa010</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>1.北京华北2114.8万人上海华东2,500万人广州华南1292.68万人成都华西1417万人(1)使用dom4j将信息存入xml中(2)读取信息,并打印控制台(3)添加一个city节点与子节点(4)使用socketTCP协议编写服务端与客户端,客户端输入城市ID,服务器响应相应城市信息(5)使用socketTCP协议编写服务端与客户端,客户端要求用户输入city对象,服务端接收并使用dom4j</div> </li> <li><a href="/article/59.htm" title="html" target="_blank">html</a> <span class="text-muted">周华华</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>js 1,数组的排列 var arr=[1,4,234,43,52,]; for(var x=0;x<arr.length;x++){    for(var y=x-1;y<arr.length;y++){      if(arr[x]<arr[y]){     &</div> </li> <li><a href="/article/186.htm" title="【Struts2 四】Struts2拦截器" target="_blank">【Struts2 四】Struts2拦截器</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/struts2%E6%8B%A6%E6%88%AA%E5%99%A8/1.htm">struts2拦截器</a> <div>Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。   Struts2中自定义拦截器的步骤是:</div> </li> <li><a href="/article/313.htm" title="make:cc 命令未找到解决方法" target="_blank">make:cc 命令未找到解决方法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%91%BD%E4%BB%A4%E6%9C%AA%E7%9F%A5/1.htm">命令未知</a><a class="tag" taget="_blank" href="/search/make+cc/1.htm">make cc</a> <div>安装rz sz程序时,报下面错误:   [root@slave2 src]# make posix cc   -O -DPOSIX -DMD=2 rz.c -o rz make: cc:命令未找到 make: *** [posix] 错误 127   系统:centos 6.6 环境:虚拟机   错误原因:系统未安装gcc,这个是由于在安</div> </li> <li><a href="/article/440.htm" title="Oracle之Job应用" target="_blank">Oracle之Job应用</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/oracle+job/1.htm">oracle job</a> <div> 最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。   一:查看相关job信息    1、相关视图  dba_jobs  all_jobs  user_jobs  dba_jobs_running 包含正在运行</div> </li> <li><a href="/article/567.htm" title="多线程机制" target="_blank">多线程机制</a> <span class="text-muted">朱辉辉33</span> <a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div>转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx 程序、进程和线程: 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的</div> </li> <li><a href="/article/694.htm" title="web报表工具FineReport使用中遇到的常见报错及解决办法(一)" target="_blank">web报表工具FineReport使用中遇到的常见报错及解决办法(一)</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/web%E6%8A%A5%E8%A1%A8/1.htm">web报表</a><a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/java%E6%8A%A5%E8%A1%A8/1.htm">java报表</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E8%A1%A8%E5%B7%A5%E5%85%B7/1.htm">报表工具</a> <div>FineReport使用中遇到的常见报错及解决办法(一) 这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。   出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。   1、address pool is full: 含义:地址池满,连接数超过并发数上</div> </li> <li><a href="/article/821.htm" title="mysql rpm安装后没有my.cnf" target="_blank">mysql rpm安装后没有my.cnf</a> <span class="text-muted">林鹤霄</span> <a class="tag" taget="_blank" href="/search/%E6%B2%A1%E6%9C%89my.cnf/1.htm">没有my.cnf</a> <div>Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的, 至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法, 第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动, 第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r</div> </li> <li><a href="/article/948.htm" title="Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题" target="_blank">Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/root/1.htm">root</a> <div>原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/   Step 4: Run ADB command from your PC   On the PC, you need install Amazon Fire ADB driver and instal</div> </li> <li><a href="/article/1075.htm" title="javascript 中var提升的典型实例" target="_blank">javascript 中var提升的典型实例</a> <span class="text-muted">alxw4616</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧 myname = 'global'; var fn = function () { console.log(myname); // undefined var myname = 'local'; console.log(myname); // local }; fn() // 上述代码实际上等同于以下代码 m</div> </li> <li><a href="/article/1202.htm" title="定时器和获取时间的使用" target="_blank">定时器和获取时间的使用</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E7%9A%84%E8%BD%AC%E6%8D%A2/1.htm">时间的转换</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E6%97%B6%E5%99%A8/1.htm">定时器</a> <div>定时器:定时创建任务在游戏设计的时候用的比较多   Timer();定时器 TImerTask();Timer的子类  由 Timer 安排为一次执行或重复执行的任务。       定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定</div> </li> <li><a href="/article/1329.htm" title="JDK1.5 Queue" target="_blank">JDK1.5 Queue</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a><a class="tag" taget="_blank" href="/search/Queue/1.htm">Queue</a> <div>JDK1.5 Queue LinkedList: LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方</div> </li> <li><a href="/article/1456.htm" title="http认证原理和https" target="_blank">http认证原理和https</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a> <div>一.基础介绍         在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。         Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后</div> </li> <li><a href="/article/1583.htm" title="【Java范型五】范型继承" target="_blank">【Java范型五】范型继承</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2   package com.tom.lang.generics; public abstract class SuperGenerics<T1, T2> { private T1 t1; private T2 t2; public abstract void doIt(T</div> </li> <li><a href="/article/1710.htm" title="【Nginx六】nginx.conf常用指令(Directive)" target="_blank">【Nginx六】nginx.conf常用指令(Directive)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Directive/1.htm">Directive</a> <div>1. worker_processes    8; 表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行   nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process </div> </li> <li><a href="/article/1837.htm" title="lua 遍历Header头部" target="_blank">lua 遍历Header头部</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/lua+header+%E9%81%8D%E5%8E%86%E3%80%80/1.htm">lua header 遍历 </a> <div> local headers = ngx.req.get_headers()   ngx.say("headers begin", "<br/>")   ngx.say("Host : ", he</div> </li> <li><a href="/article/1964.htm" title="java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。" target="_blank">java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.Arrays; public class MinSumASumB { /** * Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序. * * 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。 * 例如: * int[] a = {100,99,98,1,2,3</div> </li> <li><a href="/article/2091.htm" title="redis" target="_blank">redis</a> <span class="text-muted">开窍的石头</span> <a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a> <div>在redis的redis.conf配置文件中找到# requirepass foobared 把它替换成requirepass 12356789 后边的12356789就是你的密码 打开redis客户端输入config get requirepass 返回 redis 127.0.0.1:6379> config get requirepass 1) "require</div> </li> <li><a href="/article/2218.htm" title="[JAVA图像与图形]现有的GPU架构支持JAVA语言吗?" target="_blank">[JAVA图像与图形]现有的GPU架构支持JAVA语言吗?</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/java%E8%AF%AD%E8%A8%80/1.htm">java语言</a> <div>       无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情        </div> </li> <li><a href="/article/2345.htm" title="安装ubuntu14.04登录后花屏了怎么办" target="_blank">安装ubuntu14.04登录后花屏了怎么办</a> <span class="text-muted">cuiyadll</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>这个情况,一般属于显卡驱动问题。 可以先尝试安装显卡的官方闭源驱动。 按键盘三个键:CTRL + ALT  +  F1 进入终端,输入用户名和密码登录终端: 安装amd的显卡驱动 sudo  apt-get  install  fglrx 安装nvidia显卡驱动 sudo  ap</div> </li> <li><a href="/article/2472.htm" title="SSL 与 数字证书 的基本概念和工作原理" target="_blank">SSL 与 数字证书 的基本概念和工作原理</a> <span class="text-muted">darrenzhu</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86/1.htm">加密</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/%E8%AF%81%E4%B9%A6/1.htm">证书</a><a class="tag" taget="_blank" href="/search/%E5%AF%86%E9%92%A5/1.htm">密钥</a><a class="tag" taget="_blank" href="/search/%E7%AD%BE%E5%90%8D/1.htm">签名</a> <div>SSL 与 数字证书 的基本概念和工作原理 http://www.linuxde.net/2012/03/8301.html SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。 http://www.ibm.com/developerworks/cn/webspher</div> </li> <li><a href="/article/2599.htm" title="Ubuntu设置ip的步骤" target="_blank">Ubuntu设置ip的步骤</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。 转载不是错: Ubuntu命令行修改网络配置方法 /etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载. 1. 以D</div> </li> <li><a href="/article/2726.htm" title="php包管理工具推荐" target="_blank">php包管理工具推荐</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/Composer/1.htm">Composer</a> <div>http://www.phpcomposer.com/   Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。 中文文档  入门指南  下载  安装包列表 Composer 中国镜像 </div> </li> <li><a href="/article/2853.htm" title="Gson使用四(TypeAdapter)" target="_blank">Gson使用四(TypeAdapter)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/gson/1.htm">gson</a><a class="tag" taget="_blank" href="/search/Gson%E8%87%AA%E5%AE%9A%E4%B9%89%E8%BD%AC%E6%8D%A2%E5%99%A8/1.htm">Gson自定义转换器</a><a class="tag" taget="_blank" href="/search/gsonTypeAdapter/1.htm">gsonTypeAdapter</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述        Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例        例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都</div> </li> <li><a href="/article/2980.htm" title="JQM控件之Navbar和Tabs" target="_blank">JQM控件之Navbar和Tabs</a> <span class="text-muted">gundumw100</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>在JQM中使用导航栏Navbar是简单的。 只需要将data-role="navbar"赋给div即可: <div data-role="navbar"> <ul> <li><a href="#" class="ui-btn-active&qu</div> </li> <li><a href="/article/3107.htm" title="利用归并排序算法对大文件进行排序" target="_blank">利用归并排序算法对大文件进行排序</a> <span class="text-muted">iwindyforest</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F/1.htm">归并排序</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%96%87%E4%BB%B6/1.htm">大文件</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E6%B2%BB%E6%B3%95/1.htm">分治法</a><a class="tag" taget="_blank" href="/search/Merge+sort/1.htm">Merge sort</a> <div>  归并排序算法介绍,请参照Wikipeida zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F 基本思想: 大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数 低于限制行数的子文件直接排序 两个排序好的子文件归并到父文件 直到最后所有排序好的父文件归并到输入</div> </li> <li><a href="/article/3234.htm" title="iOS UIWebView URL拦截" target="_blank">iOS UIWebView URL拦截</a> <span class="text-muted">啸笑天</span> <a class="tag" taget="_blank" href="/search/UIWebView/1.htm">UIWebView</a> <div>本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有</div> </li> <li><a href="/article/3361.htm" title="索引的碎片整理SQL语句" target="_blank">索引的碎片整理SQL语句</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>SET NOCOUNT ON DECLARE @tablename VARCHAR (128) DECLARE @execstr VARCHAR (255) DECLARE @objectid INT DECLARE @indexid INT DECLARE @frag DECIMAL DECLARE @maxfrag DECIMAL --设置最大允许的碎片数量,超过则对索引进行碎片</div> </li> <li><a href="/article/3488.htm" title="Angularjs同步操作http请求with $promise" target="_blank">Angularjs同步操作http请求with $promise</a> <span class="text-muted">qiaolevip</span> <a class="tag" taget="_blank" href="/search/%E6%AF%8F%E5%A4%A9%E8%BF%9B%E6%AD%A5%E4%B8%80%E7%82%B9%E7%82%B9/1.htm">每天进步一点点</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E6%B0%B8%E6%97%A0%E6%AD%A2%E5%A2%83/1.htm">学习永无止境</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/%E7%BA%B5%E8%A7%82%E5%8D%83%E8%B1%A1/1.htm">纵观千象</a> <div>// Define a factory app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) { var deferred = $q.defer(); AccountService.getProfile().then(function(res) { </div> </li> <li><a href="/article/3615.htm" title="hibernate联合查询问题" target="_blank">hibernate联合查询问题</a> <span class="text-muted">sxj19881213</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/HQL/1.htm">HQL</a><a class="tag" taget="_blank" href="/search/%E8%81%94%E5%90%88%E6%9F%A5%E8%AF%A2/1.htm">联合查询</a> <div>最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。 针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)   1 几个常识:  (1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。  (2)hql的默认查询策略,在进行联合查询时,会产</div> </li> <li><a href="/article/3742.htm" title="struts2.xml" target="_blank">struts2.xml</a> <span class="text-muted">wuai</span> <a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a> <div><?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache</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>