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/1892574686173261824.htm" title="tidb实时同步到mysql" target="_blank">tidb实时同步到mysql</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>客户要求实时同步表的数据到mysql,但这个表在tidb。测试直接通过tidbcdc写入到mysql,有些字段是null,所以中间加了一个kafka实现客户库中创建表CREATETABLEtb_1(idbigintprimarykey,cidbigint,gidbigint,feeDECIMAL(10,2),created_attimestamp,typesmallint,remarkstring</div> </li> <li><a href="/article/1892574559043907584.htm" title="postgresql实时同步到mysql" target="_blank">postgresql实时同步到mysql</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>应客户要求,需要同步数据到他们自己的数据库用于简单的数据分析,但这部分数据在postgresql,客户又不想再建pg,想直接同步到他们现有的mysql库,实时性倒是不要求。考虑到1、异构数据库同步2、只同步指定客户的行数据有之前同步到es的经验,同样使用了腾讯oceanus,其它工具没搞定客户库中创建表CREATETABLEtb_1(idbigintprimarykey,didbigint,gid</div> </li> <li><a href="/article/1892574428068376576.htm" title="HarmonyOS Next AI开发环境搭建与工具使用" target="_blank">HarmonyOS Next AI开发环境搭建与工具使用</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a> <div>本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)中AI开发环境搭建与工具使用相关技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、HarmonyOSNextAI开发环境概述(一)硬件与软件环境需求介绍硬件环境处理器:对于HarmonyOSNext</div> </li> <li><a href="/article/1892574429293113344.htm" title="HarmonyOS Next智能安防系统中的人脸比对与异构计算实战" target="_blank">HarmonyOS Next智能安防系统中的人脸比对与异构计算实战</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a> <div>本文旨在深入探讨基于华为鸿蒙HarmonyOSNext系统(截止目前API12)构建智能安防系统中人脸比对与异构计算技术的实战应用,基于实际开发经验进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、智能安防系统需求与架构设计(一)功能需求分析实时人脸检测与识别需求在智能安防系统中,实时人脸检测与识别</div> </li> <li><a href="/article/1892574430836617216.htm" title="HarmonyOS Next智能语音助手的语音合成与模型优化实战" target="_blank">HarmonyOS Next智能语音助手的语音合成与模型优化实战</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a> <div>本文旨在深入探讨基于华为鸿蒙HarmonyOSNext系统(截止目前API12)构建智能语音助手过程中语音合成与模型优化技术的实战应用,基于实际开发经验进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、语音助手功能需求与架构规划(一)功能需求梳理语音指令识别需求智能语音助手需要准确识别用户的语音指令</div> </li> <li><a href="/article/1892574147041619968.htm" title="【大语言模型_3】ollama本地加载deepseek模型后回答混乱问题解决" target="_blank">【大语言模型_3】ollama本地加载deepseek模型后回答混乱问题解决</a> <span class="text-muted">没枕头我咋睡觉</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/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><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%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a> <div>背景:本地下载了DeepSeek-R1-Distill-Qwen-7B模型后,通过ollamacreateDeepSeek-R1-Distill-Qwen-7B-fds7b.mf加载模型启动后回答混乱,无法使用。解决方法重新下载模型,选择了DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf重新编写ds7b.mf文件,文件内容如下:FROM/root/zml/DeepSe</div> </li> <li><a href="/article/1892574046617399296.htm" title="全网最全!DeepSeek 新手入门教程合集" target="_blank">全网最全!DeepSeek 新手入门教程合集</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BDdeepseek/1.htm">人工智能deepseek</a> <div>如果你是初次接触DeepSeek的普通用户或开发者,面对海量教程却无从下手?别担心!本文为你整理全网最易懂、最实用的DeepSeek学习资源,涵盖快速上手、编程实战、系统手册等,附直达链接,收藏这一篇就够了!一、快速入门指南《DeepSeek入门教程》-博客园亮点:手把手教你注册账号、获取APIKey,并提供Python调用多轮对话的代码示例,适合初级开发者。直达链接:点击查看核心内容:API调用</div> </li> <li><a href="/article/1892574047934410752.htm" title="Linux系统替换字符串常用命令" target="_blank">Linux系统替换字符串常用命令</a> <span class="text-muted"></span> <div>在Linux系统中,替换字符串的操作是一项非常常见且实用的任务,尤其在处理大量文本文件时。sed和grep是两个非常强大的工具,广泛用于这种类型的文本处理操作。接下来我们将深入探讨如何使用这两个工具来实现字符串的替换操作,并详细分析每个步骤。1.使用sed替换字符串sed(StreamEditor)是一个流编辑器,广泛应用于文本处理。它可以进行查找、替换、删除和插入操作。sed的基本语法用于字符串</div> </li> <li><a href="/article/1892573643125354496.htm" title="集中式架构vs分布式架构" target="_blank">集中式架构vs分布式架构</a> <span class="text-muted">谦亨有终</span> <a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a> <div>一、集中式架构如何准确理解集中式架构1.集中式架构的定义集中式架构是一种将系统的所有计算、存储、数据处理和控制逻辑集中在一个或少数几个节点上运行的架构模式。这些中央节点(服务器或主机)作为系统的核心,负责处理所有用户请求和业务逻辑,客户端只负责请求和展示。2.核心特性单一控制中心:所有服务和资源都由中央节点统一管理。资源集中管理:数据和计算资源位于同一位置,便于维护和扩展。高一致性:由于资源集中管</div> </li> <li><a href="/article/1892573284986318848.htm" title="《计算机组成及汇编语言原理》阅读笔记:p1-p8" target="_blank">《计算机组成及汇编语言原理》阅读笔记:p1-p8</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a> <div>《计算机组成及汇编语言原理》学习第1天,p1-p8总结,总计8页。一、技术总结1.Intel8088microprocessor(微处理器),1979-1988。2.MS-DOSMicrosoftDiskOperatingSystem的缩写,是一个操作系统(operatingsystem)。3.Moore'sLaw&Moore'ssecondlaw(1)Moore'slawThenumberoft</div> </li> <li><a href="/article/1892572510000574464.htm" title="关于启动vue项目,出现:Error [ERR_MODULE_NOT_FOUND]: Cannot find module ‘xxx‘此类错误" target="_blank">关于启动vue项目,出现:Error [ERR_MODULE_NOT_FOUND]: Cannot find module ‘xxx‘此类错误</a> <span class="text-muted">zkkkkkkkkkkkkk</span> <a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/npm/1.htm">npm</a> <div>目录一、问题报错二、原因分析三、解决方法一、问题报错node环境变量配置有问题:(base)xxx@M73H-15:~/VueProject/pproject-vue$npmrundev/usr/bin/env:“node”:没有那个文件或目录vue项目启动有问题:(base)xxx:~/VueProject/pproject-vue$npmrundev>pproject-vue@0.0.0dev</div> </li> <li><a href="/article/1892572383710081024.htm" title="【Python】Python入门——判断语句" target="_blank">【Python】Python入门——判断语句</a> <span class="text-muted">zhoushanguhe</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/%E7%BC%96%E7%A8%8B/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>Python入门——判断语句。内容包括if语句、条件表达式、三元运算、match语句等。目录一、if语句1.基本if-else语句2.常用比较运算符3.if-else连写4.pass语句5.变量的作用域二、条件表达式三、三元运算四、match语句五、其他一、if语句1.基本if-else语句当条件成立时,执行某些语句;否则执行另一些语句。注意:if和else后需要加上冒号:if语句的代码块需要缩进</div> </li> <li><a href="/article/1892572005543243776.htm" title="兄弟们,我的deepseek终于可以控制浏览器了:Part 1/n,含代码" target="_blank">兄弟们,我的deepseek终于可以控制浏览器了:Part 1/n,含代码</a> <span class="text-muted">几道之旅</span> <a class="tag" taget="_blank" href="/search/Dify%EF%BC%9A%E6%99%BA%E8%83%BD%E4%BD%93%EF%BC%88Agent%EF%BC%89/1.htm">Dify:智能体(Agent)</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E5%BA%93/1.htm">知识库</a><a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%90%9E%E5%AE%9A/1.htm">全搞定</a><a class="tag" taget="_blank" href="/search/%E5%87%A0%E9%81%93%E4%B9%8B%E6%97%85AI%E4%B8%93%E6%A0%8FVVVIP/1.htm">几道之旅AI专栏VVVIP</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>文章目录前言helloworld前言其实,deepseek控制浏览器咱之前就发过,只不过当时没有想到这么好的标题,哈哈。所依赖的,依然是BrowserUse这个项目BrowserUse项目官网helloworld按照官网配置好环境后,只需新建一个python文件(例如,叫main.py?)然后运行即可。fromlangchain_openaiimportChatOpenAIfrombrowser_</div> </li> <li><a href="/article/1892571879219195904.htm" title="Linux操作系统:个人云存储服务搭建开发" target="_blank">Linux操作系统:个人云存储服务搭建开发</a> <span class="text-muted">暮雨哀尘</span> <a class="tag" taget="_blank" href="/search/Linux%E7%9A%84%E9%82%A3%E7%82%B9%E4%BA%8B/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/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E7%BE%A4%E6%8A%80%E6%9C%AF/1.htm">集群技术</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>个人云存储服务搭建开发文档一、项目目标搭建一个类似Dropbox的个人云存储服务,实现文件的同步和备份功能,确保数据的安全性和便捷性。二、技术栈操作系统:Linux(推荐使用UbuntuServer或CentOS)云存储软件:Nextcloud或SeafileWeb服务器:Apache或Nginx数据库:MySQL或MariaDBSSL证书:自签名证书或Let'sEncrypt免费证书三、搭建步骤</div> </li> <li><a href="/article/1892571123715993600.htm" title="深入解析 TensorFlow 1.15 “Cannot convert a symbolic Tensor to a numpy array” 错误" target="_blank">深入解析 TensorFlow 1.15 “Cannot convert a symbolic Tensor to a numpy array” 错误</a> <span class="text-muted">Crazy learner</span> <a class="tag" taget="_blank" href="/search/C%2B%2B%E4%B8%8Epython%E7%BC%96%E7%A8%8B/1.htm">C++与python编程</a><a class="tag" taget="_blank" href="/search/tensorflow/1.htm">tensorflow</a><a class="tag" taget="_blank" href="/search/numpy/1.htm">numpy</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.错误来源分析2.可能的原因**原因1:初始状态或输入数据的形状不匹配****原因2:TensorFlow和NumPy的版本兼容性问题****原因3:EagerExecution的影响**3.解决方法**方法1:检查输入形状和初始状态****方法2:降级NumPy版本****方法3:禁用EagerExecution****方法4:升级到TensorFlow2.x****方法5:调整代码生成初</div> </li> <li><a href="/article/1892570997295476736.htm" title="Linux 系统中的 .7z 压缩与解压详解" target="_blank">Linux 系统中的 .7z 压缩与解压详解</a> <span class="text-muted">Crazy learner</span> <a class="tag" taget="_blank" href="/search/Linux%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4/1.htm">Linux基本命令</a><a class="tag" taget="_blank" href="/search/C%2B%2B%E4%B8%8Epython%E7%BC%96%E7%A8%8B/1.htm">C++与python编程</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/7z/1.htm">7z</a> <div>目录一、安装p7zip工具二、压缩文件到.7z格式三、解压.7z文件五、常见操作实例六、总结在Linux系统中,.7z是一种高效的压缩文件格式,通常使用p7zip工具来进行操作。7z格式以其高压缩率和支持多种压缩算法(如LZMA、LZMA2等)而闻名。本文将深入讲解如何在Linux环境下使用.7z文件格式进行压缩和解压操作,并通过多个实例帮助你掌握这些技能。一、安装p7zip工具在大多数Linux</div> </li> <li><a href="/article/1892569989777518592.htm" title="如何在Pycharm等Terminal中获取当前的环境变量信息" target="_blank">如何在Pycharm等Terminal中获取当前的环境变量信息</a> <span class="text-muted">潇囧囧</span> <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>目标:查看当前编程环境变量信息。方法:直接使用os库即可查看当前虚拟环境对应的全局变量。importos#打印所有环境变量forkey,valueinos.environ.items():print(f"{key}:{value}")#获取特定环境变量的值path=os.environ.get("PATH")print(f"PATH:{path}")需求:有时会遇到虚拟环境的某些配置和我们系统的配</div> </li> <li><a href="/article/1892569127797714944.htm" title="CSE 231 Computer Python program" target="_blank">CSE 231 Computer Python program</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>CSE231Spring2025ComputerProject#4LearningobjectivesThisassignmentfocusesonthedesign,implementationandtestingofaPythonprogramthatusescharacterstringsforlookingattheDNAsequencesforkeyproteinsandseeingho</div> </li> <li><a href="/article/1892568621381644288.htm" title="COMP4436 AIoT" target="_blank">COMP4436 AIoT</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>[2024-25]COMP4436AIoTTheHongKongPolytechnicUniversity(PolyU)AssignmentISubmissionDeadline–21February2025ComparativeAnalysisofML,DLandSNNAlgorithmsinAIoTApplicationsObjective:Thegoalofthisassignmentist</div> </li> <li><a href="/article/1892568478737559552.htm" title="Sentinel实战:构建可靠的微服务防护系统" target="_blank">Sentinel实战:构建可靠的微服务防护系统</a> <span class="text-muted">ivwdcwso</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/sentinel/1.htm">sentinel</a><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/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E6%8A%A4/1.htm">防护</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><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/1.htm">开发</a> <div>1.引言在微服务架构中,保障系统的可用性和稳定性至关重要。Sentinel作为一个强大的流量控制组件,为我们提供了实现熔断、限流、系统保护等功能的有力工具。本文将通过实际案例,详细介绍Sentinel的使用方法和最佳实践,并探讨如何在容器环境中部署Sentinel。2.Sentinel简介Sentinel是阿里巴巴开源的面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系</div> </li> <li><a href="/article/1892567722542297088.htm" title="1-刷力扣问题记录" target="_blank">1-刷力扣问题记录</a> <span class="text-muted">leaf_leaves_leaf</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>25.1.191.size()和.length()有什么区别2.result.push_back({nums[i],nums[left],nums[right]});为什么用大括号?使用大括号{}是C++11引入的初始化列表语法,它允许我们在构造或初始化对象时直接传入一组值。大括号的使用在许多情况下都能让代码更加简洁和直观。{nums[i],nums[left],nums[right]}是一个初始</div> </li> <li><a href="/article/1892566840337559552.htm" title="QT界面自适应" target="_blank">QT界面自适应</a> <span class="text-muted">天生爱打工</span> <a class="tag" taget="_blank" href="/search/qt/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> <div>一自适应工具类介绍:1.1功能控件能跟随界面大小的变化实现字体、大小同比例的变化1.2优点控件大小,字体可跟随界面大小同比例任意变化。同一套程序能兼容不同分辨率及不同DPI的显示器对于控件数目固定不变的UI区域:只需要将控件拖拽到指定位置即可,不需要使用弹簧及布局等qt属性对于控件数目有可能会根据需求变化的UI区域:可以使用qt原有的布局,但解放了qt原有布局中不能改变字体的属性。二自适应工具类使</div> </li> <li><a href="/article/1892566840790544384.htm" title="[QT] 断点调试" target="_blank">[QT] 断点调试</a> <span class="text-muted">天生爱打工</span> <a class="tag" taget="_blank" href="/search/qt/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> <div>目录一设置断点二调试窗口信息2.1默认窗口2.2详细窗口属性三调试方法和技巧一设置断点在QtCreator中我们有两种方式添加断点。用鼠标直接点击代码编辑窗口中的某一行按下F9添加/取消断点(操作的是当前鼠标光标所在的代码行)二调试窗口信息2.1默认窗口这里列出几个默认的窗口红色圆点表示断点,黄色箭头表示当前程序运行位置。stack:堆栈表示当前函数之间的调用关系,比如位于哪个函数体中。Local</div> </li> <li><a href="/article/1892565580783874048.htm" title="责任链模式原理详解和源码实例以及Spring AOP拦截器链的执行源码如何使用责任链模式?" target="_blank">责任链模式原理详解和源码实例以及Spring AOP拦截器链的执行源码如何使用责任链模式?</a> <span class="text-muted">一个儒雅随和的男子</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E8%B4%A3%E4%BB%BB%E9%93%BE%E6%A8%A1%E5%BC%8F/1.htm">责任链模式</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>前言  本文首先介绍了责任链的基本原理,并附带一个例子说明责任链模式,确保能够理解责任链的前提下,在进行SpringAOP执行责任链的源码分析。责任链模式允许将多个处理对象连接成链,请求沿着链传递,直到被处理或结束。每个处理者可以选择处理请求或传递给下一个。  SpringAOP的拦截器链,拦截器或者过滤器链,都是典型的责任链应用。比如,当一个方法被调用时,多个拦截器按顺序执行,每个拦截器可以决定</div> </li> <li><a href="/article/1892565454380134400.htm" title="【部署】Ktransformer是什么、如何利用单卡24GB显存部署Deepseek-R1 和 Deepseek-V3" target="_blank">【部署】Ktransformer是什么、如何利用单卡24GB显存部署Deepseek-R1 和 Deepseek-V3</a> <span class="text-muted">仙人掌_lz</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/%E9%83%A8%E7%BD%B2/1.htm">部署</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/1.htm">自然语言处理</a> <div>简介KTransformers是一个灵活的、以Python为中心的框架,旨在通过先进的内核优化和放置/并行策略提升HuggingFaceTransformers的使用体验。它具有高度的可扩展性,用户可通过单行代码注入优化模块,获得兼容Transformers的接口、符合OpenAI和Ollama的RESTfulAPI,甚至简化的ChatGPT风格的WebUI。KTransformers的性能优化基</div> </li> <li><a href="/article/1892565076406235136.htm" title="SMT贴片加工报价构成要素与成本优化策略解析" target="_blank">SMT贴片加工报价构成要素与成本优化策略解析</a> <span class="text-muted">安德胜SMT贴片</span> <a class="tag" taget="_blank" href="/search/%E5%85%B6%E4%BB%96/1.htm">其他</a> <div>内容概要在现代电子制造领域,SMT贴片加工报价的精准核算直接影响企业供应链成本控制效能。本文通过结构化分析框架,系统解构报价体系的五大核心要素,并建立可操作的优化模型。研究路径覆盖从基材选型到生产规划的完整价值链,重点揭示各环节成本动因的相互作用机制。为直观呈现报价要素的关联性,特构建以下参数对照表:要素类别成本占比范围关键波动因素优化切入点PCB基材成本15-25%层数/板材类型/表面处理工艺标</div> </li> <li><a href="/article/1892564697887076352.htm" title="技术分享:MyBatis SQL 日志解析脚本" target="_blank">技术分享:MyBatis SQL 日志解析脚本</a> <span class="text-muted">£漫步 云端彡</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E8%B6%A3%E5%88%86%E4%BA%AB/1.htm">运维趣分享</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%BF%97%E8%A7%A3%E6%9E%90/1.htm">日志解析</a> <div>技术分享:MyBatisSQL日志解析脚本1.脚本功能概述2.实现细节2.1HTML结构2.2JavaScript逻辑3.脚本代码4.使用方法4.1示例5.总结在日常开发中,使用MyBatis作为持久层框架时,我们经常需要查看SQL日志以调试和优化查询。然而,MyBatis的日志输出通常包含占位符和参数信息,这使得直接执行这些SQL语句变得困难。为了解决这个问题,我们开发了一个简单的HTML和Ja</div> </li> <li><a href="/article/1892564445058625536.htm" title="C语言-回调函数的应用" target="_blank">C语言-回调函数的应用</a> <span class="text-muted">woainizhongguo.</span> <a class="tag" taget="_blank" href="/search/C%2FC%2B%2B/1.htm">C/C++</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>什么是回调函数回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。工作机制⑴定义一个回调函数;⑵提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者;⑶当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。应用案例(1)应用层:通过调用hal层</div> </li> <li><a href="/article/1892564443825500160.htm" title="技术爱好者不容错过!探秘 Thrive 现代化博客管理系统" target="_blank">技术爱好者不容错过!探秘 Thrive 现代化博客管理系统</a> <span class="text-muted">秋野酱</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</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/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a> <div>探索ThriveX:现代化博客管理系统的技术与实现在当今数字化时代,知识的分享与交流变得愈发重要。对于技术爱好者和从业者而言,一个优质的博客管理系统不仅是知识输出的窗口,更是思想碰撞的平台。今天,让我们一同走进ThriveX,领略其独特的魅力。一、开源助力,点亮项目之星开源的道路充满艰辛与挑战,每一段代码都凝聚着开发者的心血。如果您在了解ThriveX的过程中有所收获,不妨花费短短10秒钟,为这个</div> </li> <li><a href="/article/1892564317593726976.htm" title="C语言结构体学习笔记" target="_blank">C语言结构体学习笔记</a> <span class="text-muted">BUG 劝退师</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><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>C语言结构体学习笔记目录结构体基本概念结构体变量定义结构体初始化结构体数组结构体指针共用体枚举类型typedef自定义类型总结结构体基本概念1.什么是结构体?结构体:一种用户自定义的数据类型,用于将多个不同类型的变量组合成一个整体。用途:表示复杂数据(如学生信息:学号、姓名、成绩等)。2.结构体定义struct结构体名{数据类型成员1;数据类型成员2;//可以嵌套结构体struct子结构体名子成员</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>