Scrapy 入门教程(RUNOOB.COM)

Scrapy 入门教程

  • Scrapy的运作流程
  • 制作 Scrapy 爬虫 一共需要4步:
  • 入门案例
    • 学习目标
    • 一. 新建项目(scrapy startproject)
    • 二、明确目标(mySpider/items.py)
    • 三、制作爬虫 (spiders/itcastSpider.py)
      • 1. 爬数据
      • 2. 取数据

Scrapy 入门教程(RUNOOB.COM)_第1张图片

  • Scrapy Engine(引擎):
    负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
    Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
    Downloader(下载器):负责下载Scrapy
    Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy
    Engine(引擎),由引擎交给Spider来处理,
    Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器).
    Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。
    Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。 Spider
    Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

Scrapy的运作流程

代码写好,程序开始运行…
1 引擎:Hi!Spider, 你要处理哪一个网站?
2 Spider:老大要我处理xxxx.com。
3 引擎:你把第一个需要处理的URL给我吧。
4 Spider:给你,第一个URL是xxxxxxx.com。
5 引擎:Hi!调度器,我这有request请求你帮我排序入队一下。
6 调度器:好的,正在处理你等一下。
7 引擎:Hi!调度器,把你处理好的request请求给我。
8 调度器:给你,这是我处理好的request
9 引擎:Hi!下载器,你按照老大的下载中间件的设置帮我下载一下这个request请求
10 下载器:好的!给你,这是下载好的东西。(如果失败:sorry,这个request下载失败了。然后引擎告诉调度器,这个request下载失败了,你记录一下,我们待会儿再下载)
11 引擎:Hi!Spider,这是下载好的东西,并且已经按照老大的下载中间件处理过了,你自己处理一下(注意!这儿responses默认是交给def parse()这个函数处理的)
12 Spider:(处理完毕数据之后对于需要跟进的URL),Hi!引擎,我这里有两个结果,这个是我需要跟进的URL,还有这个是我获取到的Item数据。
13 引擎:Hi !管道 我这儿有个item你帮我处理一下!调度器!这是需要跟进URL你帮我处理下。然后从第四步开始循环,直到获取完老大需要全部信息。
14 管道调度器:好的,现在就做!

制作 Scrapy 爬虫 一共需要4步:

1.新建项目 (scrapy startproject xxx):新建一个新的爬虫项目
2.明确目标 (编写items.py):明确你想要抓取的目标
3.制作爬虫 (spiders/xxspider.py):制作爬虫开始爬取网页
4.存储内容 (pipelines.py):设计管道存储爬取内容

入门案例

学习目标

创建一个Scrapy项目
定义提取的结构化数据(Item)
编写爬取网站的 Spider 并提取出结构化数据(Item)
编写 Item Pipelines 来存储提取到的Item(即结构化数据)

一. 新建项目(scrapy startproject)

在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中,运行下列命令:
scrapy startproject mySpider
其中, mySpider 为项目名称,可以看到将会创建一个 mySpider 文件夹,目录结构大致如下:
下面来简单介绍一下各个主要文件的作用:

mySpider/
    scrapy.cfg
    mySpider/
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders/
            __init__.py
            ...

这些文件分别是:
scrapy.cfg: 项目的配置文件。
mySpider/: 项目的Python模块,将会从这里引用代码。
mySpider/items.py: 项目的目标文件。
mySpider/pipelines.py: 项目的管道文件。
mySpider/settings.py: 项目的设置文件。
mySpider/spiders/: 存储爬虫代码目录。

二、明确目标(mySpider/items.py)

我们打算抓取 http://www.itcast.cn/channel/teacher.shtml 网站里的所有讲师的姓名、职称和个人信息。
1.打开 mySpider 目录下的 items.py。
2.Item 定义结构化数据字段,用来保存爬取到的数据,有点像 Python 中的 dict,但是提供了一些额外的保护减少错误。
3.可以通过创建一个 scrapy.Item 类, 并且定义类型为 scrapy.Field 的类属性来定义一个 Item(可以理解成类似于 ORM 的映射关系)。
接下来,创建一个 ItcastItem 类,和构建 item 模型(model)。

import scrapy

class ItcastItem(scrapy.Item):
   name = scrapy.Field()
   title = scrapy.Field()
   info = scrapy.Field()

三、制作爬虫 (spiders/itcastSpider.py)

爬虫功能要分两步:

1. 爬数据

在当前目录下输入命令,将在mySpider/spider目录下创建一个名为itcast的爬虫,并指定爬取域的范围:

scrapy genspider itcast "itcast.cn"

打开 mySpider/spider目录里的 itcast.py,默认增加了下列代码:

import scrapy

class ItcastSpider(scrapy.Spider):
    name = "itcast"
    allowed_domains = ["itcast.cn"]
    start_urls = (
        'http://www.itcast.cn/',
    )

    def parse(self, response):
        pass

其实也可以由我们自行创建itcast.py并编写上面的代码,只不过使用命令可以免去编写固定代码的麻烦
要建立一个Spider, 你必须用scrapy.Spider类创建一个子类,并确定了三个强制的属性 和 一个方法。
name = “” :这个爬虫的识别名称,必须是唯一的,在不同的爬虫必须定义不同的名字。
allow_domains = [] 是搜索的域名范围,也就是爬虫的约束区域,规定爬虫只爬取这个域名下的网页,不存在的URL会被忽略。
start_urls = () :爬取的URL元祖/列表。爬虫从这里开始抓取数据,所以,第一次下载的数据将会从这些urls开始。其他子URL将会从这些起始URL中继承性生成。
parse(self, response) :解析的方法,每个初始URL完成下载后将被调用,调用的时候传入从每一个URL传回的Response对象来作为唯一参数,主要作用如下:
负责解析返回的网页数据(response.body),提取结构化数据(生成item)
生成需要下一页的URL请求。
将start_urls的值修改为需要爬取的第一个url

start_urls = ("http://www.itcast.cn/channel/teacher.shtml",)

修改parse()方法

def parse(self, response):
    filename = "teacher.html"
    open(filename, 'w').write(response.body)

然后运行一下看看,在mySpider目录下执行:

scrapy crawl itcast

是的,就是 itcast,看上面代码,它是 ItcastSpider 类的 name 属性,也就是使用 scrapy genspider命令的唯一爬虫名。
运行之后,如果打印的日志出现 [scrapy] INFO: Spider closed (finished),代表执行完成。 之后当前文件夹中就出现了一个 teacher.html 文件,里面就是我们刚刚要爬取的网页的全部源代码信息。
注意: Python2.x默认编码环境是ASCII,当和取回的数据编码格式不一致时,可能会造成乱码;我们可以指定保存内容的编码格式,一般情况下,我们可以在代码最上方添加

import sys
reload(sys)
sys.setdefaultencoding("utf-8")

这三行代码是 Python2.x 里解决中文编码的万能钥匙,经过这么多年的吐槽后 Python3 学乖了,默认编码是Unicode了…(祝大家早日拥抱Python3)

2. 取数据

爬取整个网页完毕,接下来的就是的取过程了,首先观察页面源码:

<div class="li_txt">
    <h3>  xxx  </h3>
    <h4> xxxxx </h4>
    <p> xxxxxxxx </p>

是不是一目了然?直接上 XPath 开始提取数据吧。
xpath 方法,我们只需要输入的 xpath 规则就可以定位到相应 html 标签节点,详细内容可以查看 xpath 教程。
不会 xpath 语法没关系,Chrome 给我们提供了一键获取 xpath 地址的方法(右键->检查->copy->copy xpath),如下图:
Scrapy 入门教程(RUNOOB.COM)_第2张图片
这里给出一些 XPath 表达式的例子及对应的含义:
/html/head/title: 选择HTML文档中 标签内的 元素
/html/head/title/text(): 选择上面提到的 元素的文字<br/> //td: 选择所有的 <td> 元素<br/> //div[@class=“mine”]: 选择所有具有 class=“mine” 属性的 div 元素<br/> 举例我们读取网站 <a href="http://www.itcast.cn/">http://www.itcast.cn/</a> 的网站标题,修改 <a href="http://itcast.py">itcast.py</a> 文件代码如下:</td></p> <pre><code class="prism language-javascript"># <span class="token operator">-</span><span class="token operator">*</span><span class="token operator">-</span> coding<span class="token punctuation">:</span> utf<span class="token operator">-</span><span class="token number">8</span> <span class="token operator">-</span><span class="token operator">*</span><span class="token operator">-</span> <span class="token keyword">import</span> scrapy # 以下三行是在 Python2<span class="token punctuation">.</span>x版本中解决乱码问题,Python3<span class="token punctuation">.</span>x 版本的可以去掉 <span class="token keyword">import</span> sys <span class="token function">reload</span><span class="token punctuation">(</span>sys<span class="token punctuation">)</span> sys<span class="token punctuation">.</span><span class="token function">setdefaultencoding</span><span class="token punctuation">(</span><span class="token string">"utf-8"</span><span class="token punctuation">)</span> <span class="token keyword">class</span> <span class="token class-name">Opp2Spider</span><span class="token punctuation">(</span>scrapy<span class="token punctuation">.</span>Spider<span class="token punctuation">)</span><span class="token punctuation">:</span> name <span class="token operator">=</span> <span class="token string">'itcast'</span> allowed_domains <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'itcast.com'</span><span class="token punctuation">]</span> start_urls <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'http://www.itcast.cn/'</span><span class="token punctuation">]</span> def <span class="token function">parse</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> response<span class="token punctuation">)</span><span class="token punctuation">:</span> # 获取网站标题 context <span class="token operator">=</span> response<span class="token punctuation">.</span><span class="token function">xpath</span><span class="token punctuation">(</span><span class="token string">'/html/head/title/text()'</span><span class="token punctuation">)</span> # 提取网站标题 title <span class="token operator">=</span> context<span class="token punctuation">.</span><span class="token function">extract_first</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token function">print</span><span class="token punctuation">(</span>title<span class="token punctuation">)</span> pass </code></pre> <p>执行以下命令:</p> <pre><code class="prism language-javascript">$ scrapy crawl itcast <span class="token operator">...</span> <span class="token operator">...</span> 传智播客官网<span class="token operator">-</span>好口碑<span class="token constant">IT</span>培训机构<span class="token punctuation">,</span>一样的教育<span class="token punctuation">,</span>不一样的品质 <span class="token operator">...</span> <span class="token operator">...</span> </code></pre> <p>我们之前在 mySpider/items.py 里定义了一个 ItcastItem 类。 这里引入进来:</p> <pre><code class="prism language-javascript"><span class="token keyword">from</span> mySpider<span class="token punctuation">.</span>items <span class="token keyword">import</span> ItcastItem </code></pre> <p>然后将我们得到的数据封装到一个 ItcastItem 对象中,可以保存每个老师的属性:</p> <pre><code class="prism language-javascript"><span class="token keyword">from</span> mySpider<span class="token punctuation">.</span>items <span class="token keyword">import</span> ItcastItem def <span class="token function">parse</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> response<span class="token punctuation">)</span><span class="token punctuation">:</span> #<span class="token function">open</span><span class="token punctuation">(</span><span class="token string">"teacher.html"</span><span class="token punctuation">,</span><span class="token string">"wb"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>response<span class="token punctuation">.</span>body<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span> # 存放老师信息的集合 items <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token keyword">for</span> each <span class="token keyword">in</span> response<span class="token punctuation">.</span><span class="token function">xpath</span><span class="token punctuation">(</span><span class="token string">"//div[@class='li_txt']"</span><span class="token punctuation">)</span><span class="token punctuation">:</span> # 将我们得到的数据封装到一个 <span class="token template-string"><span class="token string">`ItcastItem`</span></span> 对象 item <span class="token operator">=</span> <span class="token function">ItcastItem</span><span class="token punctuation">(</span><span class="token punctuation">)</span> #<span class="token function">extract</span><span class="token punctuation">(</span><span class="token punctuation">)</span>方法返回的都是unicode字符串 name <span class="token operator">=</span> each<span class="token punctuation">.</span><span class="token function">xpath</span><span class="token punctuation">(</span><span class="token string">"h3/text()"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">extract</span><span class="token punctuation">(</span><span class="token punctuation">)</span> title <span class="token operator">=</span> each<span class="token punctuation">.</span><span class="token function">xpath</span><span class="token punctuation">(</span><span class="token string">"h4/text()"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">extract</span><span class="token punctuation">(</span><span class="token punctuation">)</span> info <span class="token operator">=</span> each<span class="token punctuation">.</span><span class="token function">xpath</span><span class="token punctuation">(</span><span class="token string">"p/text()"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">extract</span><span class="token punctuation">(</span><span class="token punctuation">)</span> #xpath返回的是包含一个元素的列表 item<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span> <span class="token operator">=</span> name<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> item<span class="token punctuation">[</span><span class="token string">'title'</span><span class="token punctuation">]</span> <span class="token operator">=</span> title<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> item<span class="token punctuation">[</span><span class="token string">'info'</span><span class="token punctuation">]</span> <span class="token operator">=</span> info<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> items<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span>item<span class="token punctuation">)</span> # 直接返回最后数据 <span class="token keyword">return</span> items </code></pre> <p>我们暂时先不处理管道,后面会详细介绍。</p> <p><strong>保存数据</strong><br> scrapy保存信息的最简单的方法主要有四种,-o 输出指定格式的文件,命令如下:</p> <pre><code class="prism language-javascript">scrapy crawl itcast <span class="token operator">-</span>o teachers<span class="token punctuation">.</span>json </code></pre> <p>json lines格式,默认为Unicode编码</p> <pre><code class="prism language-javascript">scrapy crawl itcast <span class="token operator">-</span>o teachers<span class="token punctuation">.</span>jsonl </code></pre> <p>csv 逗号表达式,可用Excel打开</p> <pre><code class="prism language-javascript">scrapy crawl itcast <span class="token operator">-</span>o teachers<span class="token punctuation">.</span>csv </code></pre> <p>xml格式</p> <pre><code class="prism language-javascript">scrapy crawl itcast <span class="token operator">-</span>o teachers<span class="token punctuation">.</span>xml </code></pre> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1276189779330875392"></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">你可能感兴趣的:(学习笔记)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1830552033850126336.htm" title="先生的怀孕日记「128」 吵架的12句箴言(下)" target="_blank">先生的怀孕日记「128」 吵架的12句箴言(下)</a> <span class="text-muted">先生的怀孕日记</span> <div>孕22周+4天和谐先生的学习笔记(下)深入学习小姐姐的情人节礼物《如何正确吵架》“老公,延续昨天的提问,你觉得如何实现亲密关系?”“这本书给我的收获是:我们需要了解吵架背后对方的需求和动机,尊重彼此的不同。经营好一段亲密关系,不是想着改变对方,而是要先修行好自己,影响伴侣共同进步。「1」真正的亲密需要勇气、诚实和情商,拥有这些,你才会明白自己的感受,自己真正的样子以及自己的主张。--坚持行动「2」</div> </li> <li><a href="/article/1830545678531653632.htm" title="postgres学习笔记" target="_blank">postgres学习笔记</a> <span class="text-muted">liyongjie</span> <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>创建数据库在PostgreSQL中,您首先需要创建一个数据库用户,然后才能创建数据库。数据库用户与操作系统用户不同,它是PostgreSQL内的一个概念,用于管理数据库访问和操作。以下是创建PostgreSQL用户和数据库的基本命令:CREATEUSERmyuserWITHPASSWORD'mypassword';CREATEDATABASEmydbOWNERmyuser;当前用户、当前模式、当前</div> </li> <li><a href="/article/1830540257238544384.htm" title="【C++学习笔记】this指针" target="_blank">【C++学习笔记】this指针</a> <span class="text-muted">萧潇逍肖</span> <a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%9A%84%E7%9F%A5%E8%AF%86%E7%82%B9/1.htm">小的知识点</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E7%B1%BB/1.htm">类</a><a class="tag" taget="_blank" href="/search/C%2B%2B%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">C++学习笔记</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/C/1.htm">C</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">学习笔记</a> <div>this指针是什么每一个类的成员函数都有一个隐藏定义的常量指针,我们把它称为this指针。this指针的类型就是成员函数所属的类的类型。每当调用成员函数时,它被初始化为被掉函数所在类的对象的地址。也就是自动地将对象的指针传给它。不同对象调用同一个成员函数时,编译器将根据成员函数的this指针所指的对象来确定应该引用哪个对象的数据成员。这段定义的意思是在成员函数内都隐含这一个指向自己类的对象的指针,</div> </li> <li><a href="/article/1830540004984713216.htm" title="系统架构师考试学习笔记第三篇——架构设计高级知识(11)软件可靠性基础知识" target="_blank">系统架构师考试学习笔记第三篇——架构设计高级知识(11)软件可靠性基础知识</a> <span class="text-muted">SheldonK</span> <a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E5%B8%88%E5%AD%A6%E4%B9%A0%E5%88%86%E4%BA%AB/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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>本章知识点:第11课时主要学习软件可靠性基本概念、建模、管理、设计、测试和评价等内容。本课时内容侧重于概念知识,根据以往全国计算机技术与软件专业技术资格(水平)考试的出题规律,考查的知识点多来源于教材,扩展内容较少。根据考试大纲,本课时知识点会涉及单项选择题(约占2~3分),论文也会有涉及。本课时知识架构如图11.1所示。一、软件可靠性基本概念1.软件可靠性的定义软件可靠性是指在规定的时间内,软件</div> </li> <li><a href="/article/1830529533019779072.htm" title="学习笔记-2021-04-19" target="_blank">学习笔记-2021-04-19</a> <span class="text-muted">正版瓷心鱼</span> <div>学习笔记:1.如果你总盯着一件小事过不去。那么,也许你要做的不是改变别人,让别人在细微末节处顺着自己,而是调整自己,让自己身体有更强的耐挫度,能够更好的适应社会。2.一个人可以赚到超出能力之外的钱,但一定会在市场上凭着本事亏掉。那些赚到钱后再返贫甚至无法翻身的人,有个特点:“无缘故的加杠杆,再赌一把运气”。“赌”本身就是能力不足,而妄想走捷径的心态。有能力的人,通过做确定性大的事,会在某一时刻赚到</div> </li> <li><a href="/article/1830521232316002304.htm" title="FPGA学习笔记-FLASH固化" target="_blank">FPGA学习笔记-FLASH固化</a> <span class="text-muted">MR_Promethus</span> <a class="tag" taget="_blank" href="/search/FPGA/1.htm">FPGA</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91/1.htm">开发</a> <div>在我们刚开始学习FPGA的时候,我们一般都是将编译后生成的.sof文件(针对于Altera器件)通过JTAG方式下载到FPGA内部,但是我们会发现,给FPGA重新上电之后,我们之前给它下载的程序已经丢失了,如果我们还想让FPGA跑上次的功能就必须再下载一次程序。出现这个问题,是因为我们的程序并没有存到FPGA外接的配置芯片中,只是存在FPGA内部的SRAM(静态随机存储器,掉电丢失)。为了解决这个</div> </li> <li><a href="/article/1830518582111465472.htm" title="Vue学习笔记 一" target="_blank">Vue学习笔记 一</a> <span class="text-muted">涔溪</span> <a class="tag" taget="_blank" href="/search/vue/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%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>Vue学习笔记1、Vue基础指令1.1什么是Vue?Vue.js是一套响应式的JavaScript开发库。Vue.js自问世以来所受关注度不断提高,在现在的市场上,Vue.js是非常流行的JavaScript技术开发框架之一。Vue是一款国产前端框架,它的作者尤雨溪(EvanYou)是一位美籍华人,2014年2月,尤雨溪开源了一个前端开发库Vue.js,2015年发布1.0.0版本,2016年4月</div> </li> <li><a href="/article/1830516944516771840.htm" title="盒子滤波(BOX FILTER)方框滤波学习笔记" target="_blank">盒子滤波(BOX FILTER)方框滤波学习笔记</a> <span class="text-muted">Hilary煜</span> <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><a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a> <div>功能:在给定的滑动窗口大小下,对每个窗口内的像素值进行快速相加求和。应用:图像的局部矩形内像素的和、平方和、均值、方差等特征也可以用类似Haar特征的计算方法来计算Haar特征是一种用于物体识别的数字图像特征,特别是在人脸检测领域中得到了广泛应用。Haar特征得名于其与原始的Haar小波变换在计算方式上的相似性。这种特征通过计算图像中相邻矩形区域的像素强度差来捕捉图像的某些特性,如边缘、线条和中心</div> </li> <li><a href="/article/1830490722126622720.htm" title="2019,我的关于金融学学习笔记" target="_blank">2019,我的关于金融学学习笔记</a> <span class="text-muted">小小桃溜</span> <div>1、存款准备金制度是银行体系、货币信用扩张的一个重要环节;2、存款准备金就是银行需要留存下来应对储户体现的资金。这个比例一高,货币扩张的能力就弱,这个比率低,货币扩张的能力就强;3、央行可以通过调节存款准备金率来调节我们整个社会的信用规模、经济冷热;4、银行放贷的意愿和社会现金持有量会影响到我们这个货币信用扩张的效果。</div> </li> <li><a href="/article/1830485371192963072.htm" title="《金文诚〈孟子〉学习笔记740,尽心章14-29》" target="_blank">《金文诚〈孟子〉学习笔记740,尽心章14-29》</a> <span class="text-muted">金吾生</span> <div>《金文诚〈孟子〉学习笔记740,尽心章14-29》【盆成括仕于齐。孟子曰:"死矣盆成括!"盆成括见杀,门人问曰:"夫子何以知其将见杀?"曰:"其为人也小有才,未闻君子之大道也,则足以杀其躯而已矣。"】今天是戊戌年己未月辛酉日,六月十六,2018年7月28日星期六。盆成是姓,括是名。盆成括在齐国做官,孟子预言:"盆成括要死了。他不是能享寿禄之器,虽然得到提拔任用,却是离死不远了。"盆成括被杀,学生问</div> </li> <li><a href="/article/1830482286747938816.htm" title="EmguCV学习笔记 C# 9.2 VideoWriter类" target="_blank">EmguCV学习笔记 C# 9.2 VideoWriter类</a> <span class="text-muted">VB.Net</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/EmguCV/1.htm">EmguCV</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E5%83%8F/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/emgucv/1.htm">emgucv</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a><a class="tag" taget="_blank" href="/search/vb.net/1.htm">vb.net</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a> <div>版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。教程VB.net版本请访问:EmguCV学习笔记VB.Net目录-CSDN博客教程C#版本请访问:EmguCV学习笔记C#目录-CSDN博客笔者的博客网址:https:/</div> </li> <li><a href="/article/1830463626092310528.htm" title="【学习笔记】卫星通信NTN 3GPP标准化进展分析(六)- 参考标准" target="_blank">【学习笔记】卫星通信NTN 3GPP标准化进展分析(六)- 参考标准</a> <span class="text-muted">瑶光守护者</span> <a class="tag" taget="_blank" href="/search/IoT-NTN%E5%8D%AB%E6%98%9F%E9%80%9A%E4%BF%A1/1.htm">IoT-NTN卫星通信</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><a class="tag" taget="_blank" href="/search/NTN/1.htm">NTN</a><a class="tag" taget="_blank" href="/search/3GPP/1.htm">3GPP</a><a class="tag" taget="_blank" href="/search/%E5%8D%AB%E6%98%9F%E9%80%9A%E4%BF%A1/1.htm">卫星通信</a> <div>一、引言:本文来自3GPPJoernKrause,3GPPMCC(May14,2024)Non-TerrestrialNetworks(NTN)(3gpp.org)本文总结了NTN标准化进程以及后续的研究计划,是学习NTN协议的入门。【学习笔记】卫星通信NTN3GPP标准化进展分析(一)-基本信息-CSDN博客https://blog.csdn.net/u011376987/article/det</div> </li> <li><a href="/article/1830461107014299648.htm" title="我的创作纪念日" target="_blank">我的创作纪念日</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/%E5%85%B6%E4%BB%96/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>机缘怎么说呢,我的第一篇博客是《HTML5的web工作线程》,当时看完《HeadFirstHTML5Programming》就在想,要是我当时在社团学习的时候碰到这本书,那不是嘎嘎乱杀,登上老大宝座,不得不说,我被这本书代入式的情景教学和幽默风趣的语言风格所深深吸引了,这里也要感谢幕后的翻译工作者。当时的这篇博客更像是一篇简单学习笔记,根本谈不上是技术博客,但那时动手实践和发第一篇博客的激动,却为</div> </li> <li><a href="/article/1830448411128721408.htm" title="学习笔记:我的新媒体运营进阶之路(二)" target="_blank">学习笔记:我的新媒体运营进阶之路(二)</a> <span class="text-muted">山山而川_Y</span> <div>进入到学习的第二阶段,有了前面的导论铺垫后,可以说是渐渐进入了学习状态。工作日每天晚上八点准时开启学习,根据当日任务和学习状态灵活调整学习时间。本阶段主要学习了新媒体应用传播学和着陆页实战课程。新媒体应用传播学:重点学习了线性传播的线性视角、非线性视角、文化视角、影响力六原则。新媒体着陆页实战:在此门课程中学习了着陆页经典的八大结构:价值定位、行动呼唤、产品特征、信用背书、用户评价、风险承诺、常见</div> </li> <li><a href="/article/1830444971103186944.htm" title="【学习笔记】18 如何写好简历" target="_blank">【学习笔记】18 如何写好简历</a> <span class="text-muted">快乐精灵_hy</span> <div>【得到课程】吴军·阅读与写作50讲【学习笔记】写简历的四点忌讳:切忌把小成绩当大成就夸:别人秀肌肉时谈论能扛几袋大米,如果自已只是能拎起三个馒头,则不如不说。切忌把别人的功劳当自已的夸:把自已的功劳讲清楚,不要太笼统,不要误导对方,认为全是你的功劳。切忌平均用力,没有亮点:重点突出做得好的工作,淡化做得一般的工作,写简历的关键,不是把金子埋在沙堆里让人去找,而是要把沙子洗掉,让金子更耀眼。切忌用P</div> </li> <li><a href="/article/1830432873895784448.htm" title="IPFS学习笔记" target="_blank">IPFS学习笔记</a> <span class="text-muted">Kevin_miu</span> <a class="tag" taget="_blank" href="/search/IPFS/1.htm">IPFS</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/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">基础知识</a><a class="tag" taget="_blank" href="/search/IPFS/1.htm">IPFS</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a> <div>IPFS学习笔记文章目录IPFS学习笔记IPFS简介IPFS协议栈技术拆解1.Kademlia和DHT2.MerkleTree和MerkleDAG3.Bittorrent和BitSwap4.IPNS场景模拟版本:本文档持续更新…即将补充Bittorrent和MerkleDAG详细内容参考:戴嘉乐:详解IPFS的本质IPFS白皮书-JuanBenetP2P中DHT网络介绍IPFS:BitSwap协议</div> </li> <li><a href="/article/1830412331478249472.htm" title="pytest学习笔记--接口自动化测试基础之日志封装学习" target="_blank">pytest学习笔记--接口自动化测试基础之日志封装学习</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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%8A%9F%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">功能测试</a> <div>目录logging实例配置日志级别参数可写str或者int类型Handler对象常用的handler实例对象给handler对象设置日志级别给handler对象设置日志输出格式logging配置error级别以上日志发送邮件logging实例配置日志级别参数可写str或者int类型logger.setLevel(level)方法配置过滤日志级别根据源码可以看到参数level可以使int类型或者st</div> </li> <li><a href="/article/1830364045627191296.htm" title="求任意两顶点间最短路算法及其matlab程序详解" target="_blank">求任意两顶点间最短路算法及其matlab程序详解</a> <span class="text-muted">夏天天天天天天天#</span> <a class="tag" taget="_blank" href="/search/%E5%9B%BE%E8%AE%BA/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/%E5%9B%BE%E8%AE%BA/1.htm">图论</a><a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a> <div>#################本文为学习《图论算法及其MATLAB实现》的学习笔记#################算法用途图中任意两点间最短路的求法算法思想利用求最短路的Floyd算法的思想。首先,求得最短距离矩阵;然后,求任意给定两个顶点间的最短路所包含的顶点。程序参数说明W:图的权值矩阵k1:始点k2:终点P:k1,k2之间的最短路,顶点以经过次序排列u:最短路的距离算法的matlab程</div> </li> <li><a href="/article/1830340979626962944.htm" title="html语言及js脚本基础,Javascript基础学习笔记(菜鸟必看篇)" target="_blank">html语言及js脚本基础,Javascript基础学习笔记(菜鸟必看篇)</a> <span class="text-muted">游苏昱</span> <a class="tag" taget="_blank" href="/search/html%E8%AF%AD%E8%A8%80%E5%8F%8Ajs%E8%84%9A%E6%9C%AC%E5%9F%BA%E7%A1%80/1.htm">html语言及js脚本基础</a> <div>什么是变量?变量是用于存储信息的容器变量的声明语法:var变量名变量名=值;变量要先声明再赋值变量可以重复赋值变量的命名规则变量必须以字母开头;变量也能以$和_符号开头(不过我们不推荐这么做);变量名称对大小写敏感(a和A是不同的变量)。语句语句以一个分号结尾;如果省略分号,则由解析器确定语句的结尾。有个好的编码习惯,都要以;结尾数据类型在JavaScript中,一段信息就是一个值(value)。</div> </li> <li><a href="/article/1830304230292942848.htm" title="《数据思维课》学习笔记之一" target="_blank">《数据思维课》学习笔记之一</a> <span class="text-muted">昌平老刘</span> <div>我是那种特别、特别、特别不愿意花钱去学习的人。一方面是由于吝啬的天性,另一方面,则是由于不信任。在这个时代,只要花钱,基本上就意味着又上了一次当。当然也有例外。《得到》上的课程,有一个好处,可以先试读试学五节课,如果觉得不怎么样,那就随它去,花钱还在其次,主要是不能再继续浪费时间。有一个叫宣明栋的老师,据他自我介绍说是负责《得到》品控的,工作三十多年了,一直在跟数据打交道,完全有资格有能力开设这么</div> </li> <li><a href="/article/1830301777275219968.htm" title="unity3D学习笔记之三:全局光照" target="_blank">unity3D学习笔记之三:全局光照</a> <span class="text-muted">watl0</span> <a class="tag" taget="_blank" href="/search/Unity/1.htm">Unity</a><a class="tag" taget="_blank" href="/search/Unity/1.htm">Unity</a> <div>本文整理自Unity全球官方网站,原文:UNITY5-LIGHTINGANDRENDERING(文章较长,请耐心阅读)简介全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法,要精确的仿真全局光照非常有挑战性,付出的代价也高,正因为如此,现代游戏会先一定程度的预先处理这些计算,而非游戏执行时实时运算。同一场景里:没有照明(左),只有直接光源(中),和有间接光源的全局光照(右)的表现,注</div> </li> <li><a href="/article/1830298392459309056.htm" title="《随园诗话》学习笔记三百零一" target="_blank">《随园诗话》学习笔记三百零一</a> <span class="text-muted">飞鸿雪舞</span> <div>卷四人所难言,我易言之七十六、妙诗【原文】余宰江宁时,查宣门居士开赠《蔗塘诗》一集,盖其族人心谷先生为仁所作。本籍海宁,寓居天津,十九岁即经患难,在狱八年,始得释归;怜才爱士,置驿通宾,其诗清妙,盖深得初白老人之教者。《同友集空谷园》云:“郊居尘埃少,幽访共沿回。柳下孤篷泊,花间白版开。高人还掩卧,稚子识曾来。小立窥鸥鹭,忘机客不猜。”《秋夜病中》云:“巷尾迢迢报柝声,虚堂如水断人行。云移一朵月吞</div> </li> <li><a href="/article/1830291060937551872.htm" title="数据结构(邓俊辉)学习笔记】串 10——BM_BC算法:坏字符" target="_blank">数据结构(邓俊辉)学习笔记】串 10——BM_BC算法:坏字符</a> <span class="text-muted">诸葛悠闲</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>文章目录1.坏字符2.特殊情况1.坏字符实际上,刚才的实例中我们所展示的那样一个计算过程,就是所谓BM算法所采用的策略之一,而这一策略,将我们刚才所说的教训称作坏字符。在这里,不妨改为基于蛮力算法的第二个版本来进行改造。也就是说模式算中当前参与比对的如果是字符P[j],那么文本串中对应的就是T[i+j],这幅图画出的就是这样一个一般性的场景。请注意,当前这趟扫描如果的确已经抵达P[j]或T[i+j</div> </li> <li><a href="/article/1830244809143578624.htm" title="C++学习笔记----5、重用之设计(四)---- 设计一个成功的抽象与SOLID原则" target="_blank">C++学习笔记----5、重用之设计(四)---- 设计一个成功的抽象与SOLID原则</a> <span class="text-muted">王俊山IT</span> <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><a class="tag" taget="_blank" href="/search/c%2B%2B/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>1、设计一个成功的抽象经验与迭代对于好的抽象非常重要。真正好的设计的接口来自于经年的编写与使用其他的抽象。你也可以通过重要既存的、以标准设计模式形式存在的设计好的抽象来利用其他人的经年的编写与使用抽象。当你碰到其他的抽象,尝试记住什么起作用什么不起作用。在上周使用的Windows文件系统API有发现什么缺陷吗?如果你不使用同事的而要自己写网络包装器,会有什么不同吗?最好的接口鲜有一蹴而就,所以要保</div> </li> <li><a href="/article/1830223094778785792.htm" title="四章-47-KML地震信息" target="_blank">四章-47-KML地震信息</a> <span class="text-muted">彩云飘过</span> <div>本文基于腾讯课堂老胡的课《跟我学Openlayers--基础实例详解》做的学习笔记,使用的openlayers5.3.xapi。源码见1047.html,对应的官网示例https://openlayers.org/en/latest/examples/kml-earthquakes.html?q=kmlimage.pngimage.pngKML源,数据处理方式和前例相同信息弹窗使用了bootstr</div> </li> <li><a href="/article/1830187329801777152.htm" title="opencv学习笔记19-opencv焊点(原点)计数" target="_blank">opencv学习笔记19-opencv焊点(原点)计数</a> <span class="text-muted">The_xz</span> <a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</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>一、原理:opencv学习笔记13-opencv连通组件标记实现硬币计数二、不同情况思路:当焊点为背景时,进行反色处理(二值化后若焊点为背景,转化为前景)。三、示例代码:#include#include#include#include#include#includeusingnamespacecv;usingnamespacestd;intmain(){utils::logging::setLog</div> </li> <li><a href="/article/1830182290668482560.htm" title="Datawhale Al夏令营第三期 Al+物质科学task2学习笔记" target="_blank">Datawhale Al夏令营第三期 Al+物质科学task2学习笔记</a> <span class="text-muted">weixin_75033552</span> <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>AI4Science是一个较为普遍的术语,通常指的是人工智能在科学研究和技术发展中的应用。它涵盖了各种科学领域,包括物理学、化学、生物学、地球科学等。虽然没有一个特定的确切历史,但可以描述人工智能在科学研究中的一些早期里程碑和发展趋势。早期发展知识表示与推理:20世纪70年代末和80年代初,早期的AI研究开始探索如何用机器推理来模拟人类的思维过程。这种推理方式被应用于物理学、化学等学科中,尝试解决</div> </li> <li><a href="/article/1830178755356749824.htm" title="语义补全学习笔记" target="_blank">语义补全学习笔记</a> <span class="text-muted">AI算法网奇</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80/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>自动驾驶VoxFormerVoxFromer仅通过2D图像,不依赖点云数据,能预测完整的3D几何形状和语义信息GitHub-NVlabs/VoxFormer:OfficialPyTorchimplementationofVoxFormer[CVPR2023Highlight]</div> </li> <li><a href="/article/1830175352694075392.htm" title="Datawhale x李宏毅苹果书入门 AI夏令营 task03学习笔记" target="_blank">Datawhale x李宏毅苹果书入门 AI夏令营 task03学习笔记</a> <span class="text-muted">weixin_75033552</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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>实践方法论训练模型的基本步骤:(如下图所示)用训练集训练模型,(最终得出来最优的参数集)将最优参数集带入模型中,用测试集测试模型(人话:将最优参数集带入原来函数中,用测试集的x值计算y值)(这个过程就叫做预测)训练过程中遇到问题的解决攻略(看下图的方式是“前序遍历”)modelbias出现问题的情况:1.看trainingdata的loss,太大;2.当你模型无论如何调整参数,训练的结果还是不够好</div> </li> <li><a href="/article/1830174722109829120.htm" title="深度补全学习笔记" target="_blank">深度补全学习笔记</a> <span class="text-muted">AI算法网奇</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80/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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>目录自动驾驶深度补全Symphonies报错'FieldInfo'objecthasnoattribute'required'通用深度补全rgb生成点云自动驾驶深度补全Symphonieshttps://github.com/hustvl/Symphonies?tab=readme-ov-file安装mmcv和mmdet安装MMCV和MMDET_mmdet.core-CSDN博客报错'FieldI</div> </li> <li><a href="/article/88.htm" title="ztree设置禁用节点" target="_blank">ztree设置禁用节点</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/ztree/1.htm">ztree</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/setDisabledNode/1.htm">setDisabledNode</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a> <div>ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。 $(function(){ showTree(); setDisabledNode(); }); </div> </li> <li><a href="/article/215.htm" title="JVM patch by Taobao" target="_blank">JVM patch by Taobao</a> <span class="text-muted">bookjovi</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/HotSpot/1.htm">HotSpot</a> <div>在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。   7050685:jsdbproc64.sh has a typo in the package name 7058036:FieldsAllocationStyle=2 does not work in 32-bit VM 7060619:C1 should respect inline and</div> </li> <li><a href="/article/342.htm" title="将session存储到数据库中" target="_blank">将session存储到数据库中</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/session/1.htm">session</a> <div>CREATE TABLE sessions ( id CHAR(32) NOT NULL, data TEXT, last_accessed TIMESTAMP NOT NULL, PRIMARY KEY (id) );   <?php /** * Created by PhpStorm. * User: michaeldu * Date</div> </li> <li><a href="/article/469.htm" title="Vector" target="_blank">Vector</a> <span class="text-muted">171815164</span> <a class="tag" taget="_blank" href="/search/vector/1.htm">vector</a> <div>public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) { for (int i = 0; i < cart.size(); i++) { if (cart.get(i).getId().equals(id)) { cart.remove(i); </div> </li> <li><a href="/article/596.htm" title="各连接池配置参数比较" target="_blank">各连接池配置参数比较</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/%E8%BF%9E%E6%8E%A5%E6%B1%A0/1.htm">连接池</a> <div>        排版真心费劲,大家凑合看下吧,见谅~     Druid DBCP C3P0 Proxool 数据库用户名称 Username Username User   数据库密码 Password Password Password   驱动名</div> </li> <li><a href="/article/723.htm" title="[简单]mybatis insert语句添加动态字段" target="_blank">[简单]mybatis insert语句添加动态字段</a> <span class="text-muted">53873039oycg</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>      mysql数据库,id自增,配置如下:       <insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id" parameterType=&</div> </li> <li><a href="/article/850.htm" title="struts2拦截器配置" target="_blank">struts2拦截器配置</a> <span class="text-muted">云端月影</span> <a class="tag" taget="_blank" href="/search/struts2%E6%8B%A6%E6%88%AA%E5%99%A8/1.htm">struts2拦截器</a> <div>struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 <struts>     <package name="struts2" extends="struts-default">         &</div> </li> <li><a href="/article/977.htm" title="IE中页面不居中,火狐谷歌等正常" target="_blank">IE中页面不居中,火狐谷歌等正常</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/IE%E4%B8%AD%E9%A1%B5%E9%9D%A2%E4%B8%8D%E5%B1%85%E4%B8%AD/1.htm">IE中页面不居中</a> <div>问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3</div> </li> <li><a href="/article/1104.htm" title="String,int,Integer,char 几个类型常见转换" target="_blank">String,int,Integer,char 几个类型常见转换</a> <span class="text-muted">antonyup_2006</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a> <div>如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将字串 String 转换成Integer ? Integer integer=Integer.valueOf(str); 如何将整数 int 转换成字串 String ? 1.</div> </li> <li><a href="/article/1231.htm" title="PL/SQL的游标类型" target="_blank">PL/SQL的游标类型</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E6%98%BE%E7%A4%BA%E6%B8%B8%E6%A0%87%28%E9%9D%99%E6%80%81%E6%B8%B8%E6%A0%87%29/1.htm">显示游标(静态游标)</a><a class="tag" taget="_blank" href="/search/%E9%9A%90%E5%BC%8F%E6%B8%B8%E6%A0%87/1.htm">隐式游标</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%A0%87%E7%9A%84%E6%9B%B4%E6%96%B0%E5%92%8C%E5%88%A0%E9%99%A4/1.htm">游标的更新和删除</a><a class="tag" taget="_blank" href="/search/%25rowtype/1.htm">%rowtype</a><a class="tag" taget="_blank" href="/search/ref%E6%B8%B8%E6%A0%87%28%E5%8A%A8%E6%80%81%E6%B8%B8%E6%A0%87%29/1.htm">ref游标(动态游标)</a> <div>游标是oracle中的一个结果集,用于存放查询的结果;   PL/SQL中游标的声明; 1,声明游标 2,打开游标(默认是关闭的); 3,提取数据 4,关闭游标     注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标   隐式游标:主要是对DML数据的操作隐</div> </li> <li><a href="/article/1358.htm" title="JUnit4中@AfterClass @BeforeClass @after @before的区别对比" target="_blank">JUnit4中@AfterClass @BeforeClass @after @before的区别对比</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JUnit4/1.htm">JUnit4</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>一.基础知识 JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源  对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次</div> </li> <li><a href="/article/1485.htm" title="精通Oracle10编程SQL(12)开发包" target="_blank">精通Oracle10编程SQL(12)开发包</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>/* *开发包 *包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数) */ --包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成 --建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等 --在包规</div> </li> <li><a href="/article/1612.htm" title="【EhCache二】ehcache.xml配置详解" target="_blank">【EhCache二】ehcache.xml配置详解</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/ehcache.xml/1.htm">ehcache.xml</a> <div>在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中! ehcache.xml : http://ehcache.org/ehcache.xml ehcache.xsd : http://ehcache.org/ehcache.xsd ehcache配置文件的根元素是ehcahe   ehcac</div> </li> <li><a href="/article/1739.htm" title="java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL" target="_blank">java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL</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/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a> <div>今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器: <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>  随后启动</div> </li> <li><a href="/article/1866.htm" title="angular.element" target="_blank">angular.element</a> <span class="text-muted">boyitech</span> <a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/AngularJS+API/1.htm">AngularJS API</a><a class="tag" taget="_blank" href="/search/angular.element/1.htm">angular.element</a> <div>angular.element 描述:     包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦)     如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e</div> </li> <li><a href="/article/1993.htm" title="java-给定两个已排序序列,找出共同的元素。" target="_blank">java-给定两个已排序序列,找出共同的元素。</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class CommonItemInTwoSortedArray { /** * 题目:给定两个已排序序列,找出共同的元素。 * 1.定义两个指针分别指向序列的开始。 * 如果指向的两个元素</div> </li> <li><a href="/article/2120.htm" title="sftp 异常,有遇到的吗?求解" target="_blank">sftp 异常,有遇到的吗?求解</a> <span class="text-muted">Chen.H</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jcraft/1.htm">jcraft</a><a class="tag" taget="_blank" href="/search/auth/1.htm">auth</a><a class="tag" taget="_blank" href="/search/jsch/1.htm">jsch</a><a class="tag" taget="_blank" href="/search/jschexception/1.htm">jschexception</a> <div>com.jcraft.jsch.JSchException: Auth cancel at com.jcraft.jsch.Session.connect(Session.java:460) at com.jcraft.jsch.Session.connect(Session.java:154) at cn.vivame.util.ftp.SftpServerAccess.connec</div> </li> <li><a href="/article/2247.htm" title="[生物智能与人工智能]神经元中的电化学结构代表什么?" target="_blank">[生物智能与人工智能]神经元中的电化学结构代表什么?</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>     我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....      我们可以尝试一下...在某些神经</div> </li> <li><a href="/article/2374.htm" title="通过LAC和CID获取经纬度信息" target="_blank">通过LAC和CID获取经纬度信息</a> <span class="text-muted">dai_lm</span> <a class="tag" taget="_blank" href="/search/lac/1.htm">lac</a><a class="tag" taget="_blank" href="/search/cid/1.htm">cid</a> <div>方法1: 用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度 方法2: 发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&</div> </li> <li><a href="/article/2501.htm" title="JAVA的困难分析" target="_blank">JAVA的困难分析</a> <span class="text-muted">datamachine</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。   -----------------------------------------------------------------------------------------</div> </li> <li><a href="/article/2628.htm" title="小学5年级英语单词背诵第二课" target="_blank">小学5年级英语单词背诵第二课</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/english/1.htm">english</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a> <div>money 钱 paper 纸 speak 讲,说 tell 告诉   remember 记得,想起 knock 敲,击,打 question 问题 number 数字,号码   learn 学会,学习 street 街道 carry 搬运,携带 send 发送,邮寄,发射   must 必须 light 灯,光线,轻的 front </div> </li> <li><a href="/article/2755.htm" title="linux下面没有tree命令" target="_blank">linux下面没有tree命令</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>centos p安装 yum -y install tree   mac os安装 brew install tree   首先来看tree的用法 tree 中文解释:tree 功能说明:以树状图列出目录的内容。 语  法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式</div> </li> <li><a href="/article/2882.htm" title="Map迭代方式,Map迭代,Map循环" target="_blank">Map迭代方式,Map迭代,Map循环</a> <span class="text-muted">蕃薯耀</span> <a class="tag" taget="_blank" href="/search/Map%E5%BE%AA%E7%8E%AF/1.htm">Map循环</a><a class="tag" taget="_blank" href="/search/Map%E8%BF%AD%E4%BB%A3/1.htm">Map迭代</a><a class="tag" taget="_blank" href="/search/Map%E8%BF%AD%E4%BB%A3%E6%96%B9%E5%BC%8F/1.htm">Map迭代方式</a> <div>Map迭代方式,Map迭代,Map循环   >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 蕃薯耀 2015年</div> </li> <li><a href="/article/3009.htm" title="Spring Cache注解+Redis" target="_blank">Spring Cache注解+Redis</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>Spring3.1 Cache注解  依赖jar包: <!-- redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> </div> </li> <li><a href="/article/3136.htm" title="Guava中针对集合的 filter和过滤功能" target="_blank">Guava中针对集合的 filter和过滤功能</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/filter/1.htm">filter</a> <div>在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:    @Test public void whenFilterWithIterables_thenFiltered() { List<String> names = Lists.newArrayList("John"</div> </li> <li><a href="/article/3263.htm" title="学习编程那点事" target="_blank">学习编程那点事</a> <span class="text-muted">lampcy</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧! 接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去</div> </li> <li><a href="/article/3390.htm" title="架构师之流处理---------bytebuffer的mark,limit和flip" target="_blank">架构师之流处理---------bytebuffer的mark,limit和flip</a> <span class="text-muted">nannan408</span> <a class="tag" taget="_blank" href="/search/ByteBuffer/1.htm">ByteBuffer</a> <div>1.前言。   如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。 2.例子. 例子代码: String str = "helloWorld"; ByteBuffer buff = ByteBuffer.wrap(str.getBytes()); Sy</div> </li> <li><a href="/article/3517.htm" title="org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1" target="_blank">org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1</a> <span class="text-muted">Everyday都不同</span> <a class="tag" taget="_blank" href="/search/%24/1.htm">$</a><a class="tag" taget="_blank" href="/search/%E8%BD%AC%E4%B9%89/1.htm">转义</a><a class="tag" taget="_blank" href="/search/el%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">el表达式</a> <div>最近在做Highcharts的过程中,在写js时,出现了以下异常:   严重: Servlet.service() for servlet jsp threw exception org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, </div> </li> <li><a href="/article/3644.htm" title="用Java实现发送邮件到163" target="_blank">用Java实现发送邮件到163</a> <span class="text-muted">tntxia</span> <a class="tag" taget="_blank" href="/search/java%E5%AE%9E%E7%8E%B0/1.htm">java实现</a> <div>/* 在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。 本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。 此篇仅介绍用</div> </li> <li><a href="/article/3771.htm" title="探索实体类存在的真正意义" target="_blank">探索实体类存在的真正意义</a> <span class="text-muted">java小叶檀</span> <a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a> <div>一. 实体类简述    实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的 POJO(Plain Old Java Objects)简单的Java对象   它的一般格式就是 public class A{ private String id; public Str</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>