【爬虫】4.3 Scrapy 爬取与存储数据

目录

1. 建立 Web 网站

2. 编写数据项目类

3. 编写爬虫程序 MySpider

4. 编写数据管道处理类

5. 设置 Scrapy 的配置文件


        从一个网站爬取到数据后,往往要存储数据到数据库中,scrapy 框架有十分方便的存储方法,为了说明这个存储过程,首先建立一个简单的网站,然后写一个 scrapy 爬虫程序爬取数据,最后存储数据。

1. 建立 Web 网站

        这个网站有一个网页,返回基本计算机教材数据,Flask程序

服务器 server.py 如下:

import flask

app = flask.Flask(__name__)


@app.route("/")
def index():
    html = """
    
    
        Python程序设计
        James
        清华大学出版社
    
    
        Java程序设计
        Robert
        人民邮电出版社
    
    
        MySQL数据库
        Steven
        高等教育出版社
    
     
    """
    return html


if __name__ == "__main__":
    app.run()

        访问这个网站时返回 xml 的数据,包含教材的名称、作者、与出版社

2. 编写数据项目类

        程序要爬取的数据是多本教材,每本教材有名称与作者,因此要建 立一个教材的类,类中包含教材名称title、作者author与出版社 publisher。在 scrapy 框架中有的.\example\Test\Test 目录下 有一个文件 items.py 就是用来设计数据项目类的,打开这个文件,改造文件成如下形式:

改造前:

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class TestItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass

改造后:

# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class BookItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    author = scrapy.Field()
    publish = scrapy.Field()

        其中 BookItme 是我们设计的教材类,这个类必须从 scrapy.Item 类继承,在类中定义教材的字段项目,每个字段项目都是一个 scrapy.Field 对象,这里定义了3个字段项目,用来存储教材名称 title、作者 author、出版社 publisher。

        如果item是一个BooItem的对象,那么可以通过item["title"]、 item["author"]、item["publisher"]来获取与设置各个字段的值,例如:

        item=BookItem()

        item["title"]="Python程序设计"

        item["author"]="James"

        item["publisher"]="清华大学出版社"

        print(item["title"])

        print(item["author"])

        print(item["publisher"])

3. 编写爬虫程序 MySpider

        数据的项目设计好后就可以编写爬虫程序(.\example\Test\Test\spiders\MySpider.py)

爬虫程序 MySpider.py 如下:

import scrapy
from ..items import BookItem


class MySpider(scrapy.Spider):
    name = "mySpider"
    start_urls = ['http://127.0.0.1:5000']

    # 回调函数
    def parse(self, response, **kwargs):
        try:
            data = response.body.decode()
            # 爬取数据
            selector = scrapy.Selector(text=data)
            books = selector.xpath("//book")
            for book in books:
                item = BookItem()
                item["title"] = book.xpath("./title/text()").extract_first()
                item["author"] = book.xpath("./author/text()").extract_first()
                item["publisher"] = book.xpath("./publisher/text()").extract_first()
                yield item
        except Exception as err:
            print(err)

        这个程序访问 http://127.0.0.1:5000 的网站,得到的网页包含教材信息, 程序过程如下:

(1)

from ..items import BookItem

从Test文件夹的items.py文件中引入BookItem类的定义。

(2)

data=response.body.decode()

selector=scrapy.Selector(text=data)

books=selector.xpath("//book")

得到网站数据并建立Selector对象,搜索到所有的节点的元素。

(3)

for book in books:

        item=BookItem()

        item["title"]=book.xpath("./title/text()").extract_first()

        item["author"] = book.xpath("./author/text()").extract_first()

        item["publisher"] = book.xpath("./publisher/text()").extract_first()

        yield item

        对于每个节点,在它下面搜索到节点,取出它的文本即教材名称, 其中注意使用book.xpath("./title/text()")搜索到<book>下面的<title>节点的文本,<span style="color:#fe2c24;"><strong>一定不能少"./"的部分</strong></span>,它表示从当前节点<book>往下搜索。同样道理搜 索<author>、<publisher>节点的文本,它们组成一个BookItem对象,这个对象通过语句:<strong> yield item</strong> 向上一级调用函数返回,接下来scrapy会把这个对象推送给与items.py同目录下的 pipelines.py文件中的数据管道,执行类取处理数据。</p> </blockquote> <h1 id="4.%20%E7%BC%96%E5%86%99%E6%95%B0%E6%8D%AE%E7%AE%A1%E9%81%93%E5%A4%84%E7%90%86%E7%B1%BB">4. 编写数据管道处理类</h1> <p>        在我 scrapy框架中有的 .\example\Test\Test 目录下有一个文件 <strong>pipelines.py </strong>就是用来数据管道处理类文件,打开这个文件可以看到一个 <strong>默认的管道类</strong>,</p> <p>默认数据管道类 <strong>pipelines.py</strong>如下:</p> <pre><code class="language-python"># Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html # useful for handling different item types with a single interface from itemadapter import ItemAdapter class TestPipeline: def process_item(self, item, spider): return item </code></pre> <p>修改并设计数据管道类 <strong>pipelines.py</strong>如下:</p> <pre><code class="language-python"># Define your item pipelines here # # Don't forget to add your pipeline to the ITEM_PIPELINES setting # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html # useful for handling different item types with a single interface from itemadapter import ItemAdapter class BookPipeline(object): count = 0 def process_item(self, item, spider): BookPipeline.count += 1 try: if BookPipeline.count == 1: fobj = open("books.txt", "wt") else: fobj = open("books.txt", "at") print(item["title"], item["author"], item["publisher"]) fobj.write(item["title"] + "," + item["author"] + "," + item["publisher"] + "\n") fobj.close() except Exception as err: print(err) return item</code></pre> <p>        这个类我们命名为 BookPipeline,它继承自object类,类中最重要的函数是process_item函数,scrapy 爬取数据开始时会建立一个 BookPipeline 类对象,然后每爬取一个数据类BookItem项目item,MySpider程序会把这个对象推送给BookPipeline对象,同时调用process_item函数一次。 process_item 函数的参数中的item就是推送来的数据,于是,便可以在这个函数中保存爬取的数据了。<strong>注意scrapy要求process_item函数最后返回这个item对象。</strong></p> <p>        在这个程序中采用文件存储爬取的数据,BookPipeline 类中先定义一个类成员count=0,用它来记录process_item调用的次数。如果是第一次调用(count=1)那么就使用语句fobj=open("books.txt","<span style="color:#fe2c24;"><strong>wt</strong></span>") <span style="color:#fe2c24;"><strong>新建</strong></span>立一个books.txt的文件,然后把item的数据写到文件中。如果不是第一次调用(count>1),就使用语句fobj=open("books.txt","<span style="color:#fe2c24;"><strong>at</strong></span>")打开已经存在的文件books.txt,把item的数据<span style="color:#fe2c24;"><strong>追加</strong></span>到文件中。这样我们反复执行爬虫程序的过程,保证每次清除掉上次的数据,记录本次爬取的数据。</p> <h1 id="5.%20%E8%AE%BE%E7%BD%AE%20Scrapy%20%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6">5. 设置 Scrapy 的配置文件</h1> <p>        MySpider爬虫程序执行后每爬取一个 item 项目都会推送到 BookPipelines类并调用的process_item 函数,那么 scrapy 怎么样知道要这样做呢?<strong>前提是我们必须设置这样一个通道</strong>。 在Test 文件夹中有一个 <strong>settings.py</strong> 的设置文件,打开这个文件可以看到很多设置项目,大部分是用#注释的语句,找到语句ITEM_PIPLINES的项目, 把它设置成如下形式:</p> <pre><code class="language-python"># Configure item pipelines # See https://docs.scrapy.org/en/latest/topics/item-pipeline.html ITEM_PIPELINES = { "Test.pipelines.TestPipeline": 300, }</code></pre> <p>        其中 <strong>ITEM_PIPLINES</strong> 是一个字典,把关键字改成 Test.pipelines.BookPipeline',而BookPipelines 就是在 pipelines.py 文件中设计的数据管道类的名称,后面的300是一个<strong>默认</strong>的整数,实际上它可以不是300,它可以是任何整数。</p> <p>        设置完成后就连通了爬虫程序 MySpider 数据管道处理程序 pipelines.py 的通道,scrapy工作时会把 MySpider 爬虫程序通过yield返回的每项数据推送给 pipelines.py 程序的 BookPipeline 类,并执行 process_item 函数,这样就可以保存数据了。</p> <p><strong>总结:</strong></p> <p>        scrapy把数据<span style="color:#fe2c24;"><strong>爬取</strong></span>与数据<strong>存储</strong>分开处理,它们都是<span style="color:#fe2c24;"><strong>异步</strong></span>执行的, MySpider.py 每爬取到一个数据项目 item,就 <strong>yield </strong>推送给 pipelines.py 程序存储; 等待存储完毕后,又再次爬取另外一个数据项目 item,再次 yield 推送到 pipelines.py 程序,然后再次存储, ......, 这个过程一 直进行下去,直到爬取过程结束,文件 books.txt 中就存储了所有的爬取数据了。</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1668195520172089344"></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,爬虫,scrapy,python)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1830525011727839232.htm" title="【Bigtop】Ambari2.8.0编译及安装" target="_blank">【Bigtop】Ambari2.8.0编译及安装</a> <span class="text-muted">Meepoljd</span> <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/%E8%BF%90%E7%BB%B4%E5%BC%80%E5%8F%91/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/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/ambari/1.htm">ambari</a> <div>Ambari2.8.0编译及安装Ambari2.8.0编译及安装编译Ambari编译Ambari-metrics搭建Ambari镜像准备Ambari2.8.0编译及安装编译Ambari安装必要工具:yum-yinstallgcc-c++gitpsutilspython-develrpm-build克隆仓库并切换到2.8.0-rc1分支gitcheckoutrelease-2.8.0-rc1必须安装</div> </li> <li><a href="/article/1830519717610221568.htm" title="备战2024数学建模国赛(模型十八):拟合模型 优秀案例(二)高温作业服设计" target="_blank">备战2024数学建模国赛(模型十八):拟合模型 优秀案例(二)高温作业服设计</a> <span class="text-muted">2024年数学建模国赛</span> <a class="tag" taget="_blank" href="/search/%E5%A4%87%E6%88%982024%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/1.htm">备战2024数学建模国赛</a><a class="tag" taget="_blank" href="/search/%E5%A4%87%E6%88%982024%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">备战2024数学建模</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">数学建模</a><a class="tag" taget="_blank" href="/search/2024%E5%B9%B4%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/1.htm">2024年数学建模国赛</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/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/%E6%8B%9F%E5%90%88%E6%A8%A1%E5%9E%8B/1.htm">拟合模型</a> <div>专栏内容(赛前预售价99,比赛期间299):2024数学建模国赛期间会发布思路、代码和优秀论文。(本专栏达不到国一的水平,适用于有一点点基础冲击省奖的同学,近两年有二十几个国二,但是达不到国一,普遍获得省奖,请勿盲目订阅)python全套教程(一百篇博客):从新手到掌握使用python,可以对数学建模问题进行建模分析。35套模型算法(优秀论文示例):马尔科夫模型、遗传算法、逻辑回归、逐步回归、蚁群</div> </li> <li><a href="/article/1830519718834958336.htm" title="2024年数学建模国赛 35个优秀算法模型优秀论文,备战2024年数学建模国赛目录" target="_blank">2024年数学建模国赛 35个优秀算法模型优秀论文,备战2024年数学建模国赛目录</a> <span class="text-muted">2024年数学建模国赛</span> <a class="tag" taget="_blank" href="/search/%E5%A4%87%E6%88%982024%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/1.htm">备战2024数学建模国赛</a><a class="tag" taget="_blank" href="/search/%E5%A4%87%E6%88%982024%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">备战2024数学建模</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/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/2024%E5%B9%B4%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/1.htm">2024年数学建模国赛</a><a class="tag" taget="_blank" href="/search/%E5%BF%AB%E9%80%9F%E5%AE%8C%E6%88%90%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E8%AE%BA%E6%96%87/1.htm">快速完成数学建模论文</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B%E8%AE%BA%E6%96%87%E4%BC%98%E7%A7%80%E6%A1%88%E4%BE%8B/1.htm">数学建模国赛论文优秀案例</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/1.htm">数学建模国赛</a><a class="tag" taget="_blank" href="/search/2024/1.htm">2024</a> <div>专栏内容(赛前预售价69,比赛期间299):2024数学建模国赛期间会发布思路、代码和优秀论文。(本专栏达不到国一的水平,适用于有一点点基础冲击省奖的同学,近两年有二十几个国二,但是达不到国一,普遍获得省奖,请勿盲目订阅)https://blog.csdn.net/m0_52343631/category_12482955.htmlpython全套教程(一百篇博客):从新手到掌握使用python,</div> </li> <li><a href="/article/1830519465436082176.htm" title="备战2024数学建模国赛(模型六):多元回归 优秀案例(一)颜色与物质浓度的辨识问题" target="_blank">备战2024数学建模国赛(模型六):多元回归 优秀案例(一)颜色与物质浓度的辨识问题</a> <span class="text-muted">2024年数学建模国赛</span> <a class="tag" taget="_blank" href="/search/%E5%A4%87%E6%88%982024%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/1.htm">备战2024数学建模国赛</a><a class="tag" taget="_blank" href="/search/%E5%A4%87%E6%88%982024%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">备战2024数学建模</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1/1.htm">数学建模</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E5%85%83%E5%9B%9E%E5%BD%92/1.htm">多元回归</a><a class="tag" taget="_blank" href="/search/2024%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/1.htm">2024数学建模国赛</a><a class="tag" taget="_blank" href="/search/2024/1.htm">2024</a><a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a><a class="tag" taget="_blank" href="/search/%E5%A4%87%E6%88%98%E6%95%B0%E5%AD%A6%E5%BB%BA%E6%A8%A1%E5%9B%BD%E8%B5%9B/1.htm">备战数学建模国赛</a><a class="tag" taget="_blank" href="/search/%E5%9B%BD%E8%B5%9B%E6%80%9D%E8%B7%AF%E4%BB%A3%E7%A0%81/1.htm">国赛思路代码</a> <div>专栏内容(赛前预售价99,比赛期间299):2024数学建模国赛期间会发布思路、代码和优秀论文。(本专栏达不到国一的水平,适用于有一点点基础冲击省奖的同学,近两年有二十几个国二,但是达不到国一,普遍获得省奖,请勿盲目订阅)python全套教程(一百篇博客):从新手到掌握使用python,可以对数学建模问题进行建模分析。35套模型算法(优秀论文示例):马尔科夫模型、遗传算法、逻辑回归、逐步回归、蚁群</div> </li> <li><a href="/article/1830518961578536960.htm" title="创建型设计模式-原型模式(prototype)- python实现" target="_blank">创建型设计模式-原型模式(prototype)- python实现</a> <span class="text-muted">懂一点的陈老师</span> <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/%E5%8E%9F%E5%9E%8B%E6%A8%A1%E5%BC%8F/1.htm">原型模式</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/python/1.htm">python</a> <div>设计模式汇总:查看通俗示例想象一下,你正在制作一个复杂的文档,这个文档包含了大量的文本、图片和格式设置。现在,你希望创建一个与当前文档内容完全相同的新文档,但又不希望花费时间重新编辑和排版。在这个时候,如果有一个“复制”按钮,你可以一键复制整个文档,并在新的副本上进行修改,这该多方便啊!这个“复制”按钮就是原型模式的现实例子。通俗解释原型模式是一种创建型设计模式,它允许我们通过复制现有的对象来创建</div> </li> <li><a href="/article/1830518075322101760.htm" title="python基本操作和方法" target="_blank">python基本操作和方法</a> <span class="text-muted">魔曦帝天</span> <div>split,丛左往右分割url='www.bcd.com'li=url.split('.',1)以点为分隔符,分割为两个a,b=url.split(.)#生成一个列表,字符串rsplit从右往左url='www.qm.com'url2=url.rsplit('.',1)url2['www.qfedu','com']printstr.split('',1);#以空格为分隔符,分隔成两个rsplit从</div> </li> <li><a href="/article/1830500061088411648.htm" title="【mysql】03通过命令行快速导出带字段名的csv格式数据" target="_blank">【mysql】03通过命令行快速导出带字段名的csv格式数据</a> <span class="text-muted">余欲与鱼语渔</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>导出数据命令如下:mysql-uyour_username-p-e"SELECT*FROMdatabase.table"--batch>filename.csv导出的数据以制表符’\t’分隔字段更换分隔符想换逗号可以在‘>’前面加上:|sed's/\t/,/g'不想要字段名不想要字段名,可以在batch后面再加个参数:--skip-column-names读取数据在python中读取数据注意设置编</div> </li> <li><a href="/article/1830495017647566848.htm" title="【网站项目】SpringBoot549农事管理系统" target="_blank">【网站项目】SpringBoot549农事管理系统</a> <span class="text-muted">卓怡学长</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%AF%95%E4%B8%9A%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/spring/1.htm">spring</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> <div>作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板,帮助书写开题报告。作者完整代码目录供你选择:《Springboot网站项目》400套《ssm网站项目》800套《小程序项目》300套《App项目》500套《Python网站项目</div> </li> <li><a href="/article/1830494513190236160.htm" title="华为OD机试真题 - 亲子游戏 - 广度优先搜索BFS(Python/JS/C/C++ 2024 D卷 200分)" target="_blank">华为OD机试真题 - 亲子游戏 - 广度优先搜索BFS(Python/JS/C/C++ 2024 D卷 200分)</a> <span class="text-muted">哪 吒</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E5%AE%BD%E5%BA%A6%E4%BC%98%E5%85%88/1.htm">宽度优先</a> <div>华为OD机试2024E卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。一、题目描述宝宝和妈妈参加亲子游戏,在一个二维矩阵(N</div> </li> <li><a href="/article/1830494513618055168.htm" title="华为OD机试真题 - 表演赛游戏分组 - 动态规划(Python/JS/C/C++ 2024 D卷 200分)" target="_blank">华为OD机试真题 - 表演赛游戏分组 - 动态规划(Python/JS/C/C++ 2024 D卷 200分)</a> <span class="text-muted">哪 吒</span> <a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92/1.htm">动态规划</a> <div>华为OD机试2024E卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。一、题目描述部门准备举办一场王者荣耀表演赛,有10名游</div> </li> <li><a href="/article/1830494386987823104.htm" title="华为OD机试真题 - 字符串排序(Python/JS/C/C++ 2024 D卷 100分)" target="_blank">华为OD机试真题 - 字符串排序(Python/JS/C/C++ 2024 D卷 100分)</a> <span class="text-muted">哪 吒</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>华为OD机试2024E卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。一、题目描述编写一个程序,将输入字符串中的字符按如下规</div> </li> <li><a href="/article/1830489849497481216.htm" title="华为OD机试真题 - 数组合并(Python/JS/C/C++ 2024 D卷 100分)" target="_blank">华为OD机试真题 - 数组合并(Python/JS/C/C++ 2024 D卷 100分)</a> <span class="text-muted">哪 吒</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/c/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/javascript/1.htm">javascript</a> <div>一、题目描述现在有多组整数数组,需要将他们合并成一个新的数组。合并规则从每个数组里按顺序取出固定长度的内容,合并到新的数组,取完的内容会删除掉。如果改行不足固定长度,或者已经为空,则直接取出剩余部分的内容放到新的数组中继续下一行。二、输入描述第一行,每次读取的固定长度,长度0<len<10;第二行是整数数组的数目,数目0<num<10000;第3~n行是需要合并的数组,不同的数组用换行分割,元素之</div> </li> <li><a href="/article/1830470814521192448.htm" title="周报 | 24.8.26-24.9.1文章汇总" target="_blank">周报 | 24.8.26-24.9.1文章汇总</a> <span class="text-muted">双木的木</span> <a class="tag" taget="_blank" href="/search/python%E6%8B%93%E5%B1%95%E5%AD%A6%E4%B9%A0/1.htm">python拓展学习</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E6%8B%93%E5%B1%95%E9%98%85%E8%AF%BB/1.htm">深度学习拓展阅读</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><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/gpt/1.htm">gpt</a><a class="tag" taget="_blank" href="/search/transformer/1.htm">transformer</a><a class="tag" taget="_blank" href="/search/stable/1.htm">stable</a><a class="tag" taget="_blank" href="/search/diffusion/1.htm">diffusion</a> <div>为了更好地整理文章和发表接下来的文章,以后每周都汇总一份周报。周报|24.8.19-24.8.25文章汇总-CSDN博客python|提升代码迭代速度的Python重载方法-CSDN博客机器学习算法与Python学习|黑匣子被打开了?能玩的Transformer可视化解释工具!_研究别人的黑盒算法机器学习python-CSDN博客极市平台|语言图像模型大一统!Meta将Transformer和Di</div> </li> <li><a href="/article/1830462995814248448.htm" title="python协程理论理解" target="_blank">python协程理论理解</a> <span class="text-muted">python之行</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> <div>1、概念进程是指一段程序指令的运行活动,是计算机分配资源的最小单元(进程为线程提供资源,可以认为是指开了一块内存区域)线程是计算机中可以被cpu调度的最小单元,一个进程中可以有多个线程,进程为进程中的线程提供资源,线程是真正工作的单位协程也可以被称为微线程,是一种上下文切换技术,其实就是通过代码,切换执行不同的程序,目的是同线程一样,使计算机资源被充分利用2、作用进程:如果开启多进程,任务就可以由</div> </li> <li><a href="/article/1830458460802740224.htm" title="AES加密类库教程" target="_blank">AES加密类库教程</a> <span class="text-muted">马安柯Lorelei</span> <div>AES加密类库教程AES-Encryption-ClassesAESencryptioninPython,PHP,C#,Java,C++,F#,Ruby,Scala,Node.js项目地址:https://gitcode.com/gh_mirrors/ae/AES-Encryption-Classes项目介绍本教程将详细介绍GitHub上的一个开源项目——AES-Encryption-Classe</div> </li> <li><a href="/article/1830436338470580224.htm" title="Python基本语法" target="_blank">Python基本语法</a> <span class="text-muted">玉奎</span> <div>一、Python介绍Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python是交互式语言:这意味着,您可以在一个Python提示符,直接互动执行写</div> </li> <li><a href="/article/1830433126569046016.htm" title="python源码 PBOCMaster MAC的计算函数及计算过程 2des" target="_blank">python源码 PBOCMaster MAC的计算函数及计算过程 2des</a> <span class="text-muted">小黄人软件</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/MAC/1.htm">MAC</a> <div>注意最后一步要用整个key加密计算过程:MAC:PBOC-MACDES算法密钥长度16(0x10)字节5775204D69616F6A756E404726444311初始向量长度8(0x08)字节0000000000000000数据长度74(0x4A)字节4348454E48414F2D50437C424645424642464630303033303643337E3942503050443243</div> </li> <li><a href="/article/1830429473846161408.htm" title="百度飞浆目标检测PPYOLOE模型在PC端、Jetson上的部署(python)" target="_blank">百度飞浆目标检测PPYOLOE模型在PC端、Jetson上的部署(python)</a> <span class="text-muted">代码能跑就可以</span> <a class="tag" taget="_blank" href="/search/%E7%99%BE%E5%BA%A6/1.htm">百度</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/1.htm">目标检测</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>部署目标检测模型前,需要配置好paddlepaddle的环境:开始使用_飞桨-源于产业实践的开源深度学习平台(paddlepaddle.org.cn)PC端和Jetson板卡端的部署方法相同,如下(直接放置部署和测试代码):importpaddle.inferenceimportcv2importnumpyasnpimporttimefrompaddle.inferenceimportConfig</div> </li> <li><a href="/article/1830428340276785152.htm" title="Python深入理解快速排序算法及其时间复杂度分析" target="_blank">Python深入理解快速排序算法及其时间复杂度分析</a> <span class="text-muted">清水白石008</span> <a class="tag" taget="_blank" href="/search/Python%E9%A2%98%E5%BA%93/1.htm">Python题库</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/1.htm">排序算法</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>Python深入理解快速排序算法及其时间复杂度分析快速排序(QuickSort)是一种高效的排序算法,广泛应用于各种实际场景中。它采用分治法(DivideandConquer)策略,通过选择一个基准元素(pivot),将数组分成两部分,使得左侧部分的元素都小于基准元素,右侧部分的元素都大于基准元素。然后递归地对这两部分进行排序。本文将详细介绍快速排序的实现过程,并深入分析其时间复杂度。一、快速排序</div> </li> <li><a href="/article/1830425946176450560.htm" title="python选择运算符_python运算符" target="_blank">python选择运算符_python运算符</a> <span class="text-muted">weixin_39910523</span> <a class="tag" taget="_blank" href="/search/python%E9%80%89%E6%8B%A9%E8%BF%90%E7%AE%97%E7%AC%A6/1.htm">python选择运算符</a> <div>python运算符:算术、比较、比较、赋值、位、逻辑、成员、身份、算术符优先级Python算术运算符以下假设变量:a=10,b=20:运算符描述实例+加-两个对象相加a+b输出结果30-减-得到负数或是一个数减去另一个数a-b输出结果-10*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果200/除-x除以yb/a输出结果2%取模-返回除法的余数b%a输出结果0**幂-返回x的y次幂a</div> </li> <li><a href="/article/1830424685406416896.htm" title="python 运算符" target="_blank">python 运算符</a> <span class="text-muted">sanduo112</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/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>python运算符一、运算符1.算术运算符+-*/%//**2.比较(关系)运算符==!=>>=:=(海象运算符)4.位运算符:&|^~(-x-1)>5.逻辑运算符andornot6.身份运算符身份运算符用于比较两个对象的存储单元is,isnot7.成员运算符innotin8.运算符优先级二、代码概述一、运算符Python语言支持以下类型的运算符:算术运算符比较(关系)运算符赋值运算符逻辑运算符位</div> </li> <li><a href="/article/1830422418292830208.htm" title="基于micropython的ESP8266控制光敏电阻传感器监测光照强度的设计方案" target="_blank">基于micropython的ESP8266控制光敏电阻传感器监测光照强度的设计方案</a> <span class="text-muted">海阔天空_2013</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a> <div>以下是一个基于micropython的ESP8266控制光敏电阻传感器监测光照强度的设计方案:一、硬件准备1.ESP8266开发板2.光敏电阻3.10K欧姆电阻4.面包板5.杜邦线若干二、硬件连接1.将光敏电阻的一端连接到ESP8266的GPIO14引脚,另一端连接到3.3V电源。2.将10K欧姆电阻的一端连接到ESP8266的GPIO14引脚,另一端连接到地(GND)。三、micropython</div> </li> <li><a href="/article/1830415988680650752.htm" title="python中ast模块的详解与用法" target="_blank">python中ast模块的详解与用法</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> <div>ast模块(AbstractSyntaxTree)是Python标准库的一部分,它提供了一个抽象语法树的API,用于解析Python代码并将其转换为树状结构。这种树状结构称为抽象语法树,它是一种中间表示形式,用于代码分析、修改和生成。抽象语法树(AST)在编译过程中,源代码首先被解析器解析成抽象语法树。抽象语法树是一个树状的数据结构,它表示源代码的语法结构。每个节点都代表源代码中的一个结构,例如函</div> </li> <li><a href="/article/1830415106824040448.htm" title="LeetCode Python - 55.跳跃游戏" target="_blank">LeetCode Python - 55.跳跃游戏</a> <span class="text-muted">xuxu1116</span> <a class="tag" taget="_blank" href="/search/LeetCode%E9%A2%98%E5%BA%93/1.htm">LeetCode题库</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a> <div>目录题目答案运行结果题目给你一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回true;否则,返回false。示例1:输入:nums=[2,3,1,1,4]输出:true解释:可以先跳1步,从下标0到达下标1,然后再从下标1跳3步到达最后一个下标。示例2:输入:nums=[3,2,1,0,4]输出:</div> </li> <li><a href="/article/1830413593741455360.htm" title="Python3 | 练气期,入门初识与起步!" target="_blank">Python3 | 练气期,入门初识与起步!</a> <span class="text-muted">全栈工程师修炼指南</span> <a class="tag" taget="_blank" href="/search/%E4%BC%81%E4%B8%9AIT%E8%BF%90%E7%BB%B4%E5%AE%9E%E8%B7%B5/1.htm">企业IT运维实践</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>[知识是人生的灯塔,只有不断学习,才能照亮前行的道路]0x00前言简述描述:作为一名网络安全转运维的工程师,每天一睁眼就要马不停蹄的学习各类计算机技术、编程和网络安全知识等,在工作中接触过很多编程语言,比如:C、Java、Python、PHP、Shell、PowerShell等,但都仅仅停留在看得懂一些,会简单使用一些的阶段,却没有去深入的了解过这些语言。正好这才趁着进行机器学习的机会,将Pyth</div> </li> <li><a href="/article/1830413594165080064.htm" title="如何获取与当前时区对应的 tz_info 对象?" target="_blank">如何获取与当前时区对应的 tz_info 对象?</a> <span class="text-muted">潮易</span> <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/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>首先,我们需要导入`datetime`和`pytz`库。`datetime.datetime`用于处理日期和时间,而`pytz`用于处理时区信息。然后,我们可以使用`datetime.now()`方法获取当前的日期和时间,并使用`datetime.astimezone()`方法将这个时间转换为指定时区的时间。```pythonimportdatetimeimportpytz#获取当前日期和时间no</div> </li> <li><a href="/article/1830409682410369024.htm" title="【华为OD机试真题E卷】522、寻找符合要求的最长子串、满足条件的最长子串的长度 II | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py)" target="_blank">【华为OD机试真题E卷】522、寻找符合要求的最长子串、满足条件的最长子串的长度 II | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py)</a> <span class="text-muted">KJ.JK</span> <a class="tag" taget="_blank" href="/search/OJ%2B%E6%9C%80%E6%96%B0%E5%8D%8E%E4%B8%BAOD%E6%9C%BA%E8%AF%95/1.htm">OJ+最新华为OD机试</a><a class="tag" taget="_blank" href="/search/%28C%2B%2B/1.htm">(C++</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Py%29/1.htm">Py)</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod%E6%9C%BA%E8%AF%95E%E5%8D%B7/1.htm">华为od机试E卷</a><a class="tag" taget="_blank" href="/search/%E5%AF%BB%E6%89%BE%E7%AC%A6%E5%90%88%E8%A6%81%E6%B1%82%E7%9A%84%E6%9C%80%E9%95%BF%E5%AD%90%E4%B8%B2/1.htm">寻找符合要求的最长子串</a><a class="tag" taget="_blank" href="/search/%E6%BB%A1%E8%B6%B3%E6%9D%A1%E4%BB%B6%E7%9A%84%E6%9C%80%E9%95%BF%E5%AD%90%E4%B8%B2%E7%9A%84%E9%95%BF%E5%BA%A6/1.htm">满足条件的最长子串的长度</a><a class="tag" taget="_blank" href="/search/II/1.htm">II</a> <div>文章目录一、题目题目描述输入输出样例1样例2二、代码与思路参考C++语言思路C++代码Java语言思路Java代码Python语言思路Python代码作者:KJ.JK订阅本专栏后即可解锁在线OJ刷题权限个人博客首页:KJ.JK专栏介绍:2024年最新的华为OD机试题目总结,使用C++、Java、Python语言进行解答,每个题目的思路分析都非常详细,支持在线OJ评测刷题!!!!订阅后获取权限,新增</div> </li> <li><a href="/article/1830407032184860672.htm" title="基于yolov8的玉米病害检测系统python源码+onnx模型+评估指标曲线+精美GUI界面" target="_blank">基于yolov8的玉米病害检测系统python源码+onnx模型+评估指标曲线+精美GUI界面</a> <span class="text-muted">FL1623863129</span> <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/YOLO/1.htm">YOLO</a> <div>【算法介绍】基于YOLOv8的玉米病害检测系统是一款利用前沿深度学习技术开发的智能农业工具。该系统以YOLOv8为核心算法,通过大量玉米病害图片的训练,能够精准识别玉米害虫病害。该系统具备高效、准确的检测能力,支持图片、批量图片、视频以及实时摄像头等多种输入方式,为农户提供了极大的便利。用户只需简单操作,即可快速获取病害识别结果及相应的防治建议,有助于及时采取措施,有效控制病害扩散,提升农业生产的</div> </li> <li><a href="/article/1830406905428799488.htm" title="Python画笔案例-026 绘制三星连线" target="_blank">Python画笔案例-026 绘制三星连线</a> <span class="text-muted">小英子架构</span> <a class="tag" taget="_blank" href="/search/python%E7%BB%98%E5%9B%BE%E6%A1%88%E4%BE%8B/1.htm">python绘图案例</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1、绘制三星连线通过python的turtle库绘制三星连线的图案,如下图:2、实现代码 绘制一个三星连线的图案,以下为实现代码:"""三星连线.py"""importturtleturtle.pensize(2)for_inrange(3):turtle.right(120)for_inrange(5):turtle.fd(30)turtle.rt(144)turtle.left(120)tur</div> </li> <li><a href="/article/1830401988462997504.htm" title="python网络爬虫(三)——爬虫攻防" target="_blank">python网络爬虫(三)——爬虫攻防</a> <span class="text-muted">光电的一只菜鸡</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>  爬虫是模拟人的浏览访问行为,进行数据的批量抓取,当抓取的数据量逐渐增大时,会给被访问的服务器造成很大的压力,甚至有可能崩溃。换句话说就是,服务器是不喜欢有人抓取自己的数据的,那么,网站方面就会这队这些爬虫者采取一些反爬策略。  服务器识别爬虫的一种方式是通过检查连接的User-Agent来识别到底是浏览器访问还是代码访问的。如果是代码访问的,当访问量增大时,服务器其就会直接封掉来访IP。  在</div> </li> <li><a href="/article/96.htm" title="怎么样才能成为专业的程序员?" target="_blank">怎么样才能成为专业的程序员?</a> <span class="text-muted">cocos2d-x小菜</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>  如何要想成为一名专业的程序员?仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。   关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为</div> </li> <li><a href="/article/223.htm" title="java web开发 高并发处理" target="_blank">java web开发 高并发处理</a> <span class="text-muted">BreakingBad</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E5%B9%B6%E5%8F%91/1.htm">并发</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91/1.htm">开发</a><a class="tag" taget="_blank" href="/search/%E5%A4%84%E7%90%86/1.htm">处理</a><a class="tag" taget="_blank" href="/search/%E9%AB%98/1.htm">高</a> <div>java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(</div> </li> <li><a href="/article/350.htm" title="mysql批量更新" target="_blank">mysql批量更新</a> <span class="text-muted">ekian</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>mysql更新优化: 一版的更新的话都是采用update set的方式,但是如果需要批量更新的话,只能for循环的执行更新。或者采用executeBatch的方式,执行更新。无论哪种方式,性能都不见得多好。 三千多条的更新,需要3分多钟。 查询了批量更新的优化,有说replace into的方式,即: replace into tableName(id,status) values</div> </li> <li><a href="/article/477.htm" title="微软BI(3)" target="_blank">微软BI(3)</a> <span class="text-muted">18289753290</span> <a class="tag" taget="_blank" href="/search/%E5%BE%AE%E8%BD%AFBI+SSIS/1.htm">微软BI SSIS</a> <div>1) Q:该列违反了完整性约束错误;已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“不能将值 NULL 插入列 'FZCHID',表 'JRB_EnterpriseCredit.dbo.QYFZCH';列不允许有 Null 值。INSERT 失败。”。 A:一般这类问题的存在是 </div> </li> <li><a href="/article/604.htm" title="Java中的List" target="_blank">Java中的List</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>        List是一个有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。         与 set 不同,列表通常允许重复</div> </li> <li><a href="/article/731.htm" title="读书笔记" target="_blank">读书笔记</a> <span class="text-muted">永夜-极光</span> <a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/1.htm">读书笔记</a> <div>   1.  K是一家加工厂,需要采购原材料,有A,B,C,D 4家供应商,其中A给出的价格最低,性价比最高,那么假如你是这家企业的采购经理,你会如何决策?          传统决策: A:100%订单  B,C,D:0%     &nbs</div> </li> <li><a href="/article/858.htm" title="centos 安装 Codeblocks" target="_blank">centos 安装 Codeblocks</a> <span class="text-muted">随便小屋</span> <a class="tag" taget="_blank" href="/search/codeblocks/1.htm">codeblocks</a> <div>1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可yum install gccyum install gcc-c++   2.安装gtk2-devel,因为默认已经安装了正式产品需要的支持库,但是没有安装开发所需要的文档.yum install gtk2* 3. 安装wxGTK    yum search w</div> </li> <li><a href="/article/985.htm" title="23种设计模式的形象比喻" target="_blank">23种设计模式的形象比喻</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory   工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:</div> </li> <li><a href="/article/1112.htm" title="开发管理 CheckLists" target="_blank">开发管理 CheckLists</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E7%AE%A1%E7%90%86+CheckLists/1.htm">开发管理 CheckLists</a> <div>开发管理 CheckLists(23) -使项目组度过完整的生命周期 开发管理 CheckLists(22) -组织项目资源 开发管理 CheckLists(21) -控制项目的范围开发管理 CheckLists(20) -项目利益相关者责任开发管理 CheckLists(19) -选择合适的团队成员开发管理 CheckLists(18) -敏捷开发 Scrum Master 工作开发管理 C</div> </li> <li><a href="/article/1239.htm" title="js实现切换" target="_blank">js实现切换</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E6%A0%8F%E7%9B%AE%E5%88%87%E6%8D%A2/1.htm">栏目切换</a> <div>js主要功能之一就是实现页面的特效,窗体的切换可以减少页面的大小,被门户网站大量应用思路: 1,先将要显示的设置为display:bisible 否则设为none 2,设置栏目的id ,js获取栏目的id,如果id为Null就设置为显示 3,判断js获取的id名字;再设置是否显示   代码实现:   html代码: <di</div> </li> <li><a href="/article/1366.htm" title="周鸿祎在360新员工入职培训上的讲话" target="_blank">周鸿祎在360新员工入职培训上的讲话</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%84%9F%E6%82%9F/1.htm">感悟</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/1.htm">项目管理</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E7%94%9F/1.htm">人生</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA/1.htm">职场</a> <div>        这篇文章也是最近偶尔看到的,考虑到原博客发布者可能将其删除等原因,也更方便个人查找,特将原文拷贝再发布的。“学东西是为自己的,不要整天以混的姿态来跟公司博弈,就算是混,我觉得你要是能在混的时间里,收获一些别的有利于人生发展的东西,也是不错的,看你怎么把握了”,看了之后,对这句话记忆犹新。  &</div> </li> <li><a href="/article/1493.htm" title="前端Web开发的页面效果" target="_blank">前端Web开发的页面效果</a> <span class="text-muted">Bill_chen</span> <a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/Microsoft/1.htm">Microsoft</a> <div>1.IE6下png图片的透明显示: <img src="图片地址" border="0" style="Filter.Alpha(Opacity)=数值(100),style=数值(3)"/> 或在<head></head>间加一段JS代码让透明png图片正常显示。 2.<li>标</div> </li> <li><a href="/article/1620.htm" title="【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)" target="_blank">【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6/1.htm">垃圾回收</a> <div>  CMS概述 并发标记清理垃圾回收(Concurrent Mark and Sweep GC)算法的主要目标是在GC过程中,减少暂停用户线程的次数以及在不得不暂停用户线程的请夸功能,尽可能短的暂停用户线程的时间。这对于交互式应用,比如web应用来说,是非常重要的。   CMS垃圾回收针对新生代和老年代采用不同的策略。相比同吞吐量垃圾回收,它要复杂的多。吞吐量垃圾回收在执</div> </li> <li><a href="/article/1747.htm" title="Struts2技术总结" target="_blank">Struts2技术总结</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/struts2/1.htm">struts2</a> <div>  必备jar文件 早在struts2.0.*的时候,struts2的必备jar包需要如下几个: commons-logging-*.jar   Apache旗下commons项目的log日志包 freemarker-*.jar          </div> </li> <li><a href="/article/1874.htm" title="Jquery easyui layout应用注意事项" target="_blank">Jquery easyui layout应用注意事项</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/layout/1.htm">layout</a> <div>在jquery easyui中提供了easyui-layout布局,他的布局比较局限,类似java中GUI的border布局。下面对其使用注意事项作简要介绍:      如果在现有的工程中前台界面均应用了jquery easyui,那么在布局的时候最好应用jquery eaysui的layout布局,否则在表单页面(编辑、查看、添加等等)在不同的浏览器会出</div> </li> <li><a href="/article/2001.htm" title="java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?" target="_blank">java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class CopySpecialLinkedList { /** * 题目:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表? 拷贝pNext指针非常容易,所以题目的难点是如何拷贝pRand指针。 假设原来链表为A1 -> A2 ->... -> An,新拷贝</div> </li> <li><a href="/article/2128.htm" title="color" target="_blank">color</a> <span class="text-muted">Chen.H</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">    <HTML>    <HEAD>&nbs</div> </li> <li><a href="/article/2255.htm" title="[信息与战争]移动通讯与网络" target="_blank">[信息与战争]移动通讯与网络</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>      两个坚持:手机的电池必须可以取下来                光纤不能够入户,只能够到楼宇       建议大家找这本书看看:<&</div> </li> <li><a href="/article/2382.htm" title="oracle flashback query(闪回查询)" target="_blank">oracle flashback query(闪回查询)</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/flashback+query/1.htm">flashback query</a><a class="tag" taget="_blank" href="/search/flashback+table/1.htm">flashback table</a> <div>在Oracle 10g中,Flash back家族分为以下成员: Flashback Database Flashback Drop Flashback Table Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transaction Query) 下面介绍一下Flashback Drop 和Flas</div> </li> <li><a href="/article/2509.htm" title="zeus持久层DAO单元测试" target="_blank">zeus持久层DAO单元测试</a> <span class="text-muted">deng520159</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>zeus代码测试正紧张进行中,但由于工作比较忙,但速度比较慢.现在已经完成读写分离单元测试了,现在把几种情况单元测试的例子发出来,希望有人能进出意见,让它走下去. 本文是zeus的dao单元测试: 1.单元测试直接上代码   package com.dengliang.zeus.webdemo.test; import org.junit.Test; import o</div> </li> <li><a href="/article/2636.htm" title="C语言学习三printf函数和scanf函数学习" target="_blank">C语言学习三printf函数和scanf函数学习</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/printf/1.htm">printf</a><a class="tag" taget="_blank" href="/search/scanf/1.htm">scanf</a><a class="tag" taget="_blank" href="/search/language/1.htm">language</a> <div>printf函数 /* 2013年3月10日20:42:32 地点:北京潘家园 功能: 目的: 测试%x %X %#x %#X的用法 */ # include <stdio.h> int main(void) { printf("哈哈!\n"); // \n表示换行 int i = 10; printf</div> </li> <li><a href="/article/2763.htm" title="那你为什么小时候不好好读书?" target="_blank">那你为什么小时候不好好读书?</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/life/1.htm">life</a> <div>dady, 我今天捡到了十块钱, 不过我还给那个人了 good girl! 那个人有没有和你讲thank you啊 没有啦....他拉我的耳朵我才把钱还给他的, 他哪里会和我讲thank you   爸爸, 如果地上有一张5块一张10块你拿哪一张呢.... 当然是拿十块的咯... 爸爸你很笨的, 你不会两张都拿   爸爸为什么上个月那个人来跟你讨钱, 你告诉他没</div> </li> <li><a href="/article/2890.htm" title="iptables开放端口" target="_blank">iptables开放端口</a> <span class="text-muted">Fanyucai</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/iptables/1.htm">iptables</a><a class="tag" taget="_blank" href="/search/%E7%AB%AF%E5%8F%A3/1.htm">端口</a> <div>1,找到配置文件 vi /etc/sysconfig/iptables   2,添加端口开放,增加一行,开放18081端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 18081 -j ACCEPT   3,保存 ESC :wq!   4,重启服务 service iptables </div> </li> <li><a href="/article/3017.htm" title="Ehcache(05)——缓存的查询" target="_blank">Ehcache(05)——缓存的查询</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F/1.htm">排序</a><a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a><a class="tag" taget="_blank" href="/search/%E7%BB%9F%E8%AE%A1/1.htm">统计</a><a class="tag" taget="_blank" href="/search/query/1.htm">query</a> <div>缓存的查询 目录 1.    使Cache可查询 1.1     基于Xml配置 1.2     基于代码的配置 2     指定可搜索的属性 2.1     可查询属性类型 2.2 &</div> </li> <li><a href="/article/3144.htm" title="通过hashset找到数组中重复的元素" target="_blank">通过hashset找到数组中重复的元素</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/hashset/1.htm">hashset</a> <div>  如何在hashset中快速找到重复的元素呢?方法很多,下面是其中一个办法: int[] array = {1,1,2,3,4,5,6,7,8,8}; Set<Integer> set = new HashSet<Integer>(); for(int i = 0</div> </li> <li><a href="/article/3271.htm" title="使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL" target="_blank">使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL</a> <span class="text-muted">lanrikey</span> <a class="tag" taget="_blank" href="/search/history/1.htm">history</a> <div>后退时关闭当前页面 <script type="text/javascript"> jQuery(document).ready(function ($) {         if (window.history && window.history.pushState) {</div> </li> <li><a href="/article/3398.htm" title="应用程序的通信成本" target="_blank">应用程序的通信成本</a> <span class="text-muted">netkiller.github.com</span> <a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">虚拟机</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/%E9%99%88%E6%99%AF%E5%B3%B0/1.htm">陈景峰</a><a class="tag" taget="_blank" href="/search/netkiller/1.htm">netkiller</a><a class="tag" taget="_blank" href="/search/neo/1.htm">neo</a> <div>应用程序的通信成本 什么是通信 一个程序中两个以上功能相互传递信号或数据叫做通信。 什么是成本 这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间是指传递过程耗费容量大小。 都有哪些通信方式 全局变量 线程间通信 共享内存 共享文件 管道 Socket 硬件(串口,USB) 等等 全局变量 全局变量是成本最低通信方法,通过设置</div> </li> <li><a href="/article/3525.htm" title="一维数组与二维数组的声明与定义" target="_blank">一维数组与二维数组的声明与定义</a> <span class="text-muted">恋洁e生</span> <a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a><a class="tag" taget="_blank" href="/search/%E4%B8%80%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">一维数组</a><a class="tag" taget="_blank" href="/search/%E5%AE%9A%E4%B9%89/1.htm">定义</a><a class="tag" taget="_blank" href="/search/%E5%A3%B0%E6%98%8E/1.htm">声明</a><a class="tag" taget="_blank" href="/search/%E5%88%9D%E5%A7%8B%E5%8C%96/1.htm">初始化</a> <div>/**  *  */ package test20111005; /**  * @author FlyingFire  * @date:2011-11-18 上午04:33:36  * @author :代码整理  * @introduce :一维数组与二维数组的初始化  *summary:  */ public c</div> </li> <li><a href="/article/3652.htm" title="Spring Mybatis独立事务配置" target="_blank">Spring Mybatis独立事务配置</a> <span class="text-muted">toknowme</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>在项目中有很多地方会使用到独立事务,下面以获取主键为例   (1)修改配置文件spring-mybatis.xml  <!-- 开启事务支持 -->  <tx:annotation-driven transaction-manager="transactionManager" />   &n</div> </li> <li><a href="/article/3779.htm" title="更新Anadroid SDK Tooks之后,Eclipse提示No update were found" target="_blank">更新Anadroid SDK Tooks之后,Eclipse提示No update were found</a> <span class="text-muted">xp9802</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a> <div>使用Android SDK Manager 更新了Anadroid SDK Tooks 之后, 打开eclipse提示 This Android SDK requires Android Developer Toolkit version 23.0.0 or above, 点击Check for Updates  检测一会后提示 No update were found  </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>