基于scrapy框架输入关键字爬取有关贴吧帖子

基于scrapy框架输入关键字爬取有关贴吧帖子

站点分析

首先进入一个贴吧,要想达到输入关键词爬取爬取指定贴吧,必然需要利用搜索引擎
基于scrapy框架输入关键字爬取有关贴吧帖子_第1张图片
点进看到有四种搜索方式,分别试一次,观察url变化
基于scrapy框架输入关键字爬取有关贴吧帖子_第2张图片
我们得知:
搜索贴吧:http://tieba.baidu.com/f/search/fm?ie=UTF-8&qw=dfd
搜索帖子:http://tieba.baidu.com/f/search/res?ie=utf-8&qw=dfd
其中参数qw是搜索关键词,由此我们可以构建搜索贴吧的url
基于scrapy框架输入关键字爬取有关贴吧帖子_第3张图片
搜索得到的页面,可以得到我们需要的贴吧url
基于scrapy框架输入关键字爬取有关贴吧帖子_第4张图片
我们就可以轻而易举的得到我们搜索的相关贴吧

下面对贴吧主页进行分析
进入贴吧F12查看
基于scrapy框架输入关键字爬取有关贴吧帖子_第5张图片
显然我们知道#thread_list这个列表,观察看到这就是每个贴在,注意li标签里的data-field字段有我们需要的信息, 不过我们只需要得到帖子的url,之后对帖子进一步提取,其中data-tid就是贴子的id,通过这个我们可以定位唯一的帖子
如data-tid=“6410699527”, 则帖子的url为teiba.baidu.com/p/6410699527具体的探索过程就不一一阐述了。。。

对帖子分析
基于scrapy框架输入关键字爬取有关贴吧帖子_第6张图片
基于scrapy框架输入关键字爬取有关贴吧帖子_第7张图片
直接源码省去很多字、、、的寻找过程,我们在源码找到了一段JavaScript代码,其中firstpost就是楼主发的帖子。。为什么不在HTML便签中提取?因为你试试就知道了,开始我就是在HTML便签中提取的,部分贴吧标题提取不出来。firstpost有着很详细的信息,标题,内容,时间
现在对贴吧的回复贴吧提取:
基于scrapy框架输入关键字爬取有关贴吧帖子_第8张图片
探索得知,很多带有表情的回复帖,内容很乱,打算正则提取。。。
一个小白的分析过程想的多,看的慢,难受!这里就不在阐述了,不然分析过程写不下

items.py编写

在这个模块里定义自己的字段,这里我们需要帖子的标题,内容,作者,时间,回复数,回复内容
源码:
# -*- coding: utf-8 -*-
import scrapy

class postDataItem(scrapy.Item):
    tid = scrapy.Field()
    title = scrapy.Field()
    content = scrapy.Field()
    author_name = scrapy.Field()
    date = scrapy.Field()
    reply_content = scrapy.Field()
    reply_num = scrapy.Field()
    device = scrapy.Field()#这给字段读者不必关注,项目所需

pipelines.py的编写

没有;
哈哈,还没想好用什么数据库

爬虫模块的编写

# -*- coding: utf-8 -*-
import scrapy
from urllib.parse import urlencode
from scrapy.http import Request
import re
import time
from ..items import postDataItem
class BtspiderSpider(scrapy.Spider):
    name = 'btSpider'
    allowed_domains = ['tieba.baidu.com']
    base_url = 'http://tieba.baidu.com'

    def start_requests(self):
        """
        开始搜索相关学校贴吧
        """
        search_base_url = 'http://tieba.baidu.com/f/search/fm?ie=UTF-8&'
        arg1 = urlencode({'qw':self.school}) #通过命令行传递属性
        search_url = search_base_url + arg1
        yield Request(url=search_url, callback=self.get_search_page_urls, dont_filter=True) #搜索的url送到调度器, 注意:这个url不参与去重下面用到

    def get_search_page_urls(self, response):
        """
        获得搜索结果所有页面,
        发送每页的url到调度器
        """
        pager_search = response.xpath("//div[@class='pager pager-search']/a/@href").extract()[:-2]
        pager_search = [(self.base_url + pager) for pager in pager_search ]
        pager_search.append(response.url)
        for pager_url in pager_search:
            yield Request(url=pager_url, callback=self.get_forum_urls)

    def get_forum_urls(self, response):
        """
        获得所有相关贴吧的url送到调度器
        """
        forum_lists = response.xpath('//div[@class="search-forum-list"]/div[@class="forum-item clear-float"]')
        for forum in forum_lists:
           forum_url = self.base_url + forum.xpath('./div[@class="left"]/a/@href').extract_first()
           yield Request(url=forum_url, callback=self.get_post_urls)

    def get_post_urls(self, response):
        """
        获得所有帖子的url
        """
        postList = response.xpath("//li[@class=' j_thread_list clearfix']")
        for post in postList:
            data_tid = post.xpath("./@data-tid").extract_first()
            post_url = self.base_url + '/p/' + data_tid
            yield Request(url=post_url, callback=self.get_post_data)
        #实现翻页操作
        url_list = response.xpath("//div[@id='frs_list_pager']/a")[:-2]
        for url in url_list:
            if int(re.findall('.*pn=(\d*)', url.xpath('./@href').extract_first())[0]) <= 20000:
                yield response.follow(url=url, callback=self.get_post_urls)
            else:
                break


    def get_post_data(self, response):
        post_data_item = postDataItem()
        # 提取帖子id
        tid = re.compile("https?://tieba.baidu.com/p/(\d*).*").findall(response.url)[0]
        post_data_item['tid'] = tid

        # 提取帖子内容的正则表达式,来源为页面底部JavaScript代码
        rpost = '"firstPost": {"title":"(?P.*)","content":"(?P<content>.*)","is_vote".*"now_time":(?P<date>\d*)'</span>
        post <span class="token operator">=</span> re.search<span class="token punctuation">(</span>rpost, response.text<span class="token punctuation">)</span>
        <span class="token comment"># 将字符串Unicode编码转换为中文</span>
        dirty_title <span class="token operator">=</span> post.group<span class="token punctuation">(</span><span class="token string">'title'</span><span class="token punctuation">)</span>.encode<span class="token punctuation">(</span><span class="token string">'utf-8'</span><span class="token punctuation">)</span>.decode<span class="token punctuation">(</span><span class="token string">"unicode_escape"</span><span class="token punctuation">)</span>
        dirty_content <span class="token operator">=</span> post.group<span class="token punctuation">(</span><span class="token string">'content'</span><span class="token punctuation">)</span>.encode<span class="token punctuation">(</span><span class="token string">'utf-8'</span><span class="token punctuation">)</span>.decode<span class="token punctuation">(</span><span class="token string">"unicode_escape"</span><span class="token punctuation">)</span>
        <span class="token comment"># 找到所有标签替换为空</span>
        post_data_item<span class="token punctuation">[</span><span class="token string">'title'</span><span class="token punctuation">]</span> <span class="token operator">=</span> re.sub<span class="token punctuation">(</span><span class="token string">'<.*?>'</span>, <span class="token string">''</span>, dirty_title<span class="token punctuation">)</span>
        post_data_item<span class="token punctuation">[</span><span class="token string">'content'</span><span class="token punctuation">]</span> <span class="token operator">=</span> re.sub<span class="token punctuation">(</span><span class="token string">'<.*?>'</span>, <span class="token string">''</span>, dirty_content<span class="token punctuation">)</span>
        <span class="token comment"># 时间戳转换为字符串时间</span>
        post_data_item<span class="token punctuation">[</span><span class="token string">'date'</span><span class="token punctuation">]</span> <span class="token operator">=</span> time.strftime<span class="token punctuation">(</span><span class="token string">"%Y-%m-%d %X"</span>, time.localtime<span class="token punctuation">(</span>int<span class="token punctuation">(</span>post.group<span class="token punctuation">(</span><span class="token string">'date'</span><span class="token punctuation">))</span><span class="token punctuation">))</span>

        <span class="token comment"># 提取作者的xpath表达式</span>
        xauthor <span class="token operator">=</span> <span class="token string">"//div[contains(@class, 'louzhubiaoshi')]/@author"</span>
        post_data_item<span class="token punctuation">[</span><span class="token string">'author_name'</span><span class="token punctuation">]</span> <span class="token operator">=</span> response.xpath<span class="token punctuation">(</span>xauthor<span class="token punctuation">)</span>.extract_first<span class="token punctuation">(</span><span class="token punctuation">)</span>

        <span class="token comment"># 提取楼层回复内容的xpath表达式,是所有的内容</span>
        <span class="token comment"># 这是经过清洗的数据用它来做分析</span>
        xreply_content <span class="token operator">=</span> <span class="token string">"//div[contains(@class, 'd_post_content')]/text()"</span>
        all_content <span class="token operator">=</span> response.xpath<span class="token punctuation">(</span>xreply_content<span class="token punctuation">)</span>.extract<span class="token punctuation">(</span><span class="token punctuation">)</span>
        all_content_dirty <span class="token operator">=</span> <span class="token string">''</span>.join<span class="token punctuation">(</span>all_content<span class="token punctuation">)</span>
        post_data_item<span class="token punctuation">[</span><span class="token string">'reply_content'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">''</span>.join<span class="token punctuation">(</span>re.findall<span class="token punctuation">(</span>r<span class="token string">'[\u4e00-\u9fa5]'</span>, all_content_dirty<span class="token punctuation">))</span>

        <span class="token comment"># 提取帖子回复数量的xpath表达式</span>
        xreply_num <span class="token operator">=</span> <span class="token string">"//span[@class='red']/text()"</span>
        post_data_item<span class="token punctuation">[</span><span class="token string">'reply_num'</span><span class="token punctuation">]</span> <span class="token operator">=</span> response.xpath<span class="token punctuation">(</span>xreply_num<span class="token punctuation">)</span>.extract_first<span class="token punctuation">(</span><span class="token punctuation">)</span>

        <span class="token keyword">for</span> key, value <span class="token keyword">in</span> post_data_item.items<span class="token punctuation">(</span><span class="token punctuation">)</span>:
            print<span class="token punctuation">(</span>key, value<span class="token punctuation">)</span>
</code></pre> 
  <h2>运行结果</h2> 
  <p><a href="http://img.e-com-net.com/image/info8/8237320e6dcc48fa99638def570923ec.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/8237320e6dcc48fa99638def570923ec.jpg" alt="基于scrapy框架输入关键字爬取有关贴吧帖子_第9张图片" width="650" height="348" style="border:1px solid black;"></a><br> 注意这是,我爬虫的精简版,只专注于一个帖子爬取</p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1293080674013618176"></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,正则表达式,xpath)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1943993659967991808.htm"
                           title="系统学习Python——并发模型和异步编程:进程、线程和GIL" target="_blank">系统学习Python——并发模型和异步编程:进程、线程和GIL</a>
                        <span class="text-muted"></span>

                        <div>分类目录:《系统学习Python》总目录在文章《并发模型和异步编程:基础知识》我们简单介绍了Python中的进程、线程和协程。本文就着重介绍Python中的进程、线程和GIL的关系。Python解释器的每个实例都是一个进程。使用multiprocessing或concurrent.futures库可以启动额外的Python进程。Python的subprocess库用于启动运行外部程序(不管使用何种</div>
                    </li>
                    <li><a href="/article/1943992776169418752.htm"
                           title="Flask框架入门:快速搭建轻量级Python网页应用" target="_blank">Flask框架入门:快速搭建轻量级Python网页应用</a>
                        <span class="text-muted">「已注销」</span>
<a class="tag" taget="_blank" href="/search/python-AI/1.htm">python-AI</a><a class="tag" taget="_blank" href="/search/python%E5%9F%BA%E7%A1%80/1.htm">python基础</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99%E7%BD%91%E7%BB%9C/1.htm">网站网络</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>转载:Flask框架入门:快速搭建轻量级Python网页应用1.Flask基础Flask是一个使用Python编写的轻量级Web应用框架。它的设计目标是让Web开发变得快速简单,同时保持应用的灵活性。Flask依赖于两个外部库:Werkzeug和Jinja2,Werkzeug作为WSGI工具包处理Web服务的底层细节,Jinja2作为模板引擎渲染模板。安装Flask非常简单,可以使用pip安装命令</div>
                    </li>
                    <li><a href="/article/1943991891796226048.htm"
                           title="Python Flask 框架入门:快速搭建 Web 应用的秘诀" target="_blank">Python Flask 框架入门:快速搭建 Web 应用的秘诀</a>
                        <span class="text-muted">Python编程之道</span>
<a class="tag" taget="_blank" href="/search/Python%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E4%B8%8E%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">Python人工智能与大数据</a><a class="tag" taget="_blank" href="/search/Python%E7%BC%96%E7%A8%8B%E4%B9%8B%E9%81%93/1.htm">Python编程之道</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a>
                        <div>PythonFlask框架入门:快速搭建Web应用的秘诀关键词Flask、微框架、路由系统、Jinja2模板、请求处理、WSGI、Web开发摘要想快速用Python搭建一个灵活的Web应用?Flask作为“微框架”代表,凭借轻量、可扩展的特性,成为初学者和小型项目的首选。本文将从Flask的核心概念出发,结合生活化比喻、代码示例和实战案例,带你一步步掌握:如何用Flask搭建第一个Web应用?路由</div>
                    </li>
                    <li><a href="/article/1943988487875260416.htm"
                           title="python_虚拟环境" target="_blank">python_虚拟环境</a>
                        <span class="text-muted">阿_焦</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>第一、配置虚拟环境:virtualenv(1)pipvirtualenv>安装虚拟环境包(2)pipinstallvirtualenvwrapper-win>安装虚拟环境依赖包(3)c盘创建虚拟目录>C:\virtualenv>配置环境变量【了解一下】:(1)如何使用virtualenv创建虚拟环境a、cd到C:\virtualenv目录下:b、mkvirtualenvname>创建虚拟环境nam</div>
                    </li>
                    <li><a href="/article/1943985208218939392.htm"
                           title="Python爱心光波" target="_blank">Python爱心光波</a>
                        <span class="text-muted"></span>

                        <div>系列文章序号直达链接Tkinter1Python李峋同款可写字版跳动的爱心2Python跳动的双爱心3Python蓝色跳动的爱心4Python动漫烟花5Python粒子烟花Turtle1Python满屏飘字2Python蓝色流星雨3Python金色流星雨4Python漂浮爱心5Python爱心光波①6Python爱心光波②7Python满天繁星8Python五彩气球9Python白色飘雪10Pyt</div>
                    </li>
                    <li><a href="/article/1943985208697090048.htm"
                           title="Python流星雨" target="_blank">Python流星雨</a>
                        <span class="text-muted">Want595</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录系列文章写在前面技术需求完整代码代码分析1.模块导入2.画布设置3.画笔设置4.颜色列表5.流星类(Star)6.流星对象创建7.主循环8.流星运动逻辑9.视觉效果10.总结写在后面系列文章序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python</div>
                    </li>
                    <li><a href="/article/1943983065500020736.htm"
                           title="Python之七彩花朵代码实现" target="_blank">Python之七彩花朵代码实现</a>
                        <span class="text-muted">PlutoZuo</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>Python之七彩花朵代码实现文章目录Python之七彩花朵代码实现下面是一个简单的使用Python的七彩花朵。这个示例只是一个简单的版本,没有很多高级功能,但它可以作为一个起点,你可以在此基础上添加更多功能。importturtleastuimportrandomasraimportmathtu.setup(1.0,1.0)t=tu.Pen()t.ht()colors=['red','skybl</div>
                    </li>
                    <li><a href="/article/1943982902379343872.htm"
                           title="Python 脚本最佳实践2025版" target="_blank">Python 脚本最佳实践2025版</a>
                        <span class="text-muted"></span>

                        <div>前文可以直接把这篇文章喂给AI,可以放到AI角色设定里,也可以直接作为提示词.这样,你只管提需求,写脚本就让AI来.概述追求简洁和清晰:脚本应简单明了。使用函数(functions)、常量(constants)和适当的导入(import)实践来有逻辑地组织你的Python脚本。使用枚举(enumerations)和数据类(dataclasses)等数据结构高效管理脚本状态。通过命令行参数增强交互性</div>
                    </li>
                    <li><a href="/article/1943982558085705728.htm"
                           title="(Python基础篇)了解和使用分支结构" target="_blank">(Python基础篇)了解和使用分支结构</a>
                        <span class="text-muted">EternityArt</span>
<a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%AF%87/1.htm">基础篇</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>目录一、引言二、Python分支结构的类型与语法(一)if语句(单分支)(二)if-else语句(双分支)(三)if-elif-else语句(多分支)三、分支结构的应用场景(一)提示用户输入用户名,然后再提示输入密码,如果用户名是“admin”并且密码是“88888”则提示正确,否则,如果用户名不是admin还提示用户用户名不存在,(二)提示用户输入用户名,然后再提示输入密码,如果用户名是“adm</div>
                    </li>
                    <li><a href="/article/1943982558555467776.htm"
                           title="(Python基础篇)循环结构" target="_blank">(Python基础篇)循环结构</a>
                        <span class="text-muted">EternityArt</span>
<a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%AF%87/1.htm">基础篇</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>一、什么是Python循环结构?循环结构是编程中重复执行代码块的机制。在Python中,循环允许你:1.迭代处理数据:遍历列表、字典、文件内容等。2.自动化重复任务:如批量处理数据、生成序列等。3.控制执行流程:根据条件决定是否继续或终止循环。二、为什么需要循环结构?假设你需要打印1到100的所有偶数:没有循环:需手动编写100行print()语句。print(0)print(2)print(4)</div>
                    </li>
                    <li><a href="/article/1943982559000064000.htm"
                           title="(Python基础篇)字典的操作" target="_blank">(Python基础篇)字典的操作</a>
                        <span class="text-muted">EternityArt</span>
<a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E7%AF%87/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编程中,字典(Dictionary)是一种极具灵活性的数据结构,它通过“键-值对”(key-valuepair)的形式存储数据,如同现实生活中的字典——通过“词语(键)”快速查找“释义(值)”。相较于列表和元组的有序索引访问,字典的优势在于基于键的快速查找,这使得它在处理需要频繁通过唯一标识获取数据的场景中极为高效。掌握字典的操作,能让我们更高效地组织和管理复杂数据,是Pyt</div>
                    </li>
                    <li><a href="/article/1943981927514042368.htm"
                           title="Python七彩花朵" target="_blank">Python七彩花朵</a>
                        <span class="text-muted">Want595</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>系列文章序号直达链接Tkinter1Python李峋同款可写字版跳动的爱心2Python跳动的双爱心3Python蓝色跳动的爱心4Python动漫烟花5Python粒子烟花Turtle1Python满屏飘字2Python蓝色流星雨3Python金色流星雨4Python漂浮爱心5Python爱心光波①6Python爱心光波②7Python满天繁星8Python五彩气球9Python白色飘雪10Pyt</div>
                    </li>
                    <li><a href="/article/1943975627472302080.htm"
                           title="用OpenCV标定相机内参应用示例(C++和Python)" target="_blank">用OpenCV标定相机内参应用示例(C++和Python)</a>
                        <span class="text-muted"></span>

                        <div>下面是一个完整的使用OpenCV进行相机内参标定(CameraCalibration)的示例,包括C++和Python两个版本,基于棋盘格图案标定。一、目标:相机标定通过拍摄多张带有棋盘格图案的图像,估计相机的内参:相机矩阵(内参)K畸变系数distCoeffs可选外参(R,T)标定精度指标(如重投影误差)二、棋盘格参数设置(根据自己的棋盘格设置):棋盘格角点数:9x6(内角点,9列×6行);每个</div>
                    </li>
                    <li><a href="/article/1943974492640440320.htm"
                           title="Anaconda 详细下载与安装教程" target="_blank">Anaconda 详细下载与安装教程</a>
                        <span class="text-muted"></span>

                        <div>Anaconda详细下载与安装教程1.简介Anaconda是一个用于科学计算的开源发行版,包含了Python和R的众多常用库。它还包括了conda包管理器,可以方便地安装、更新和管理各种软件包。2.下载Anaconda2.1访问官方网站首先,打开浏览器,访问Anaconda官方网站。2.2选择适合的版本在页面中,你会看到两个主要的下载选项:AnacondaIndividualEdition:适用于</div>
                    </li>
                    <li><a href="/article/1943972473032732672.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>
                        <div>在Python中,装饰器(Decorator)使用@符号实现,是一种修改函数/类行为的语法糖。它本质上是一个高阶函数,接受目标函数作为参数并返回包装后的函数。Python也提供了多个内置装饰器,如@property、@staticmethod、@classmethod等。一、核心概念装饰器本质:@decorator等价于func=decorator(func)执行时机:在函数/类定义时立即执行装饰</div>
                    </li>
                    <li><a href="/article/1943971717185597440.htm"
                           title="Python中的静态方法和类方法详解" target="_blank">Python中的静态方法和类方法详解</a>
                        <span class="text-muted"></span>

                        <div>在Python中,`@staticmethod`和`@classmethod`是两种装饰器,它们用于定义类中的方法,但是它们的行为和用途有所不同。###@staticmethod`@staticmethod`装饰器用于定义一个静态方法。静态方法不接收类或实例的引用作为第一个参数,因此它不能访问类的状态或实例的状态。静态方法可以看作是与类关联的普通函数,但它们可以通过类名直接调用。classMath</div>
                    </li>
                    <li><a href="/article/1943969448046161920.htm"
                           title="Python中类静态方法:@classmethod/@staticmethod详解和实战示例" target="_blank">Python中类静态方法:@classmethod/@staticmethod详解和实战示例</a>
                        <span class="text-muted"></span>

                        <div>在Python中,类方法(@classmethod)和静态方法(@staticmethod)是类作用域下的两种特殊方法。它们使用装饰器定义,并且与实例方法(deffunc(self))的行为有所不同。1.三种方法的对比概览方法类型是否访问实例(self)是否访问类(cls)典型用途实例方法✅是❌否访问对象属性类方法@classmethod❌否✅是创建类的替代构造器,访问类变量等静态方法@stati</div>
                    </li>
                    <li><a href="/article/1943968314044772352.htm"
                           title="Python多版本管理与pip升级全攻略:解决冲突与高效实践" target="_blank">Python多版本管理与pip升级全攻略:解决冲突与高效实践</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/pip/1.htm">pip</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/python3.11/1.htm">python3.11</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86/1.htm">源代码管理</a><a class="tag" taget="_blank" href="/search/%E8%99%9A%E6%8B%9F%E7%8E%B0%E5%AE%9E/1.htm">虚拟现实</a><a class="tag" taget="_blank" href="/search/%E4%BE%9D%E8%B5%96%E5%80%92%E7%BD%AE%E5%8E%9F%E5%88%99/1.htm">依赖倒置原则</a>
                        <div>引言Python作为最流行的编程语言之一,其版本迭代速度与生态碎片化给开发者带来了巨大挑战。据统计,超过60%的Python开发者需要同时维护基于Python3.6+和Python2.7的项目。本文将系统解决以下核心痛点:如何安全地在同一台机器上管理多个Python版本pip依赖冲突的根治方案符合PEP标准的生产环境最佳实践第一部分:Python多版本管理核心方案1.1系统级多版本共存方案Wind</div>
                    </li>
                    <li><a href="/article/1943967555555225600.htm"
                           title="基于Python的健身数据分析工具的搭建流程day1" target="_blank">基于Python的健身数据分析工具的搭建流程day1</a>
                        <span class="text-muted">weixin_45677320</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a>
                        <div>基于Python的健身数据分析工具的搭建流程分数据挖掘、数据存储和数据分析三个步骤。本文主要介绍利用Python实现健身数据分析工具的数据挖掘部分。第一步:加载库加载本文需要的库,如下代码所示。若库未安装,请按照python如何安装各种库(保姆级教程)_python安装库-CSDN博客https://blog.csdn.net/aobulaien001/article/details/133298</div>
                    </li>
                    <li><a href="/article/1943952054795956224.htm"
                           title="seaborn又一个扩展heatmapz" target="_blank">seaborn又一个扩展heatmapz</a>
                        <span class="text-muted">qq_21478261</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Python%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">Python可视化</a><a class="tag" taget="_blank" href="/search/matplotlib/1.htm">matplotlib</a>
                        <div>推荐阅读:Pythonmatplotlib保姆级教程嫌Matplotlib繁琐?试试Seaborn!</div>
                    </li>
                    <li><a href="/article/1943951549751422976.htm"
                           title="NGS测序基础梳理01-文库构建(Library Preparation)" target="_blank">NGS测序基础梳理01-文库构建(Library Preparation)</a>
                        <span class="text-muted">qq_21478261</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E7%89%A9%E4%BF%A1%E6%81%AF/1.htm">生物信息</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E7%89%A9%E5%AD%A6/1.htm">生物学</a>
                        <div>本文介绍Illumina测序平台文库构建(LibraryPreparation)步骤,文库结构。写作时间:2020.05。推荐阅读:10W字《Python可视化教程1.0》来了!一份由公众号「pythonic生物人」精心制作的PythonMatplotlib可视化系统教程,105页PDFhttps://mp.weixin.qq.com/s/QaSmucuVsS_DR-klfpE3-Q10W字《Rg</div>
                    </li>
                    <li><a href="/article/1943943735205228544.htm"
                           title="Python 常用内置函数详解(七):dir()函数——获取当前本地作用域中的名称列表或对象的有效属性列表" target="_blank">Python 常用内置函数详解(七):dir()函数——获取当前本地作用域中的名称列表或对象的有效属性列表</a>
                        <span class="text-muted"></span>

                        <div>目录一、功能二、语法和示例一、功能dir()函数获取当前本地作用域中的名称列表或对象的有效属性列表。二、语法和示例dir()函数有两种形式,如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表。如果对象有一个名为__dir__()的方法,那么该方法将被调用,并且必须返回一个属性列表。dir()函数的语法格式如下:C:\Users\amoxiang>ipyth</div>
                    </li>
                    <li><a href="/article/1943941718281875456.htm"
                           title="pythonjson中list操作_Python json.dumps 特殊数据类型的自定义序列化操作" target="_blank">pythonjson中list操作_Python json.dumps 特殊数据类型的自定义序列化操作</a>
                        <span class="text-muted"></span>

                        <div>场景描述:Python标准库中的json模块,集成了将数据序列化处理的功能;在使用json.dumps()方法序列化数据时候,如果目标数据中存在datetime数据类型,执行操作时,会抛出异常:TypeError:datetime.datetime(2016,12,10,11,04,21)isnotJSONserializable那么遇到json.dumps序列化不支持的数据类型,该怎么办!首先,</div>
                    </li>
                    <li><a href="/article/1943940206172368896.htm"
                           title="Python 日期格式转json.dumps的解决方法" target="_blank">Python 日期格式转json.dumps的解决方法</a>
                        <span class="text-muted">douyaoxin</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>classDateEncoder(json.JSONEncoder):defdefault(self,obj):ifisinstance(obj,datetime.datetime):returnobj.strftime('%Y-%m-%d%H:%M:%S')elifisinstance(obj,datetime.date):returnobj.strftime("%Y-%m-%d")json.d</div>
                    </li>
                    <li><a href="/article/1943934034132398080.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/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a>
                        <div>一、引言在数字内容蓬勃发展的当下,视频平台的播放量数据已成为内容创作者、营销人员以及行业分析师手中极为关键的情报资源。它不仅能够实时反映内容的受欢迎程度,更能在竞争分析、营销策略制定以及内容优化等方面发挥不可估量的作用。然而,视频平台为了保护自身数据和用户隐私,往往会设置一系列反爬虫机制,对数据爬取行为进行限制。这就向我们发起了挑战:如何巧妙地突破这些限制,同时精准地捕捉并预测播放量的动态变化趋势</div>
                    </li>
                    <li><a href="/article/1943933655697125376.htm"
                           title="Python技能手册 - 模块module" target="_blank">Python技能手册 - 模块module</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/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>系列Python常用技能手册-基础语法Python常用技能手册-模块modulePython常用技能手册-包package目录module模块指什么typing数据类型int整数float浮点数str字符串bool布尔值TypeVar类型变量functools高阶函数工具functools.partial()函数偏置functools.lru_cache()函数缓存sorted排序列表排序元组排序</div>
                    </li>
                    <li><a href="/article/1943930629099941888.htm"
                           title="Ubuntu基础(Python虚拟环境和Vue)" target="_blank">Ubuntu基础(Python虚拟环境和Vue)</a>
                        <span class="text-muted">aaiier</span>
<a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>Python虚拟环境sudoaptinstallpython3python3-venv进入项目目录cdXXX创建虚拟环境python3-mvenvvenv激活虚拟环境sourcevenv/bin/activate退出虚拟环境deactivateVue安装Node.js和npm#安装Node.js和npm(Ubuntu默认仓库可能版本较旧,适合入门)sudoaptinstallnodejsnpm#验</div>
                    </li>
                    <li><a href="/article/1943930421968433152.htm"
                           title="苦练Python第9天:if-else分支九剑" target="_blank">苦练Python第9天:if-else分支九剑</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/python%E5%90%8E%E7%AB%AF%E5%89%8D%E7%AB%AF%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">python后端前端人工智能</a>
                        <div>苦练Python第9天:if-else分支九剑前言大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!欢迎来到100天Python挑战第9天!今天我们不练循环,改磨“分支剑法”——ifelse三式:单分支、双分支、多分支,以及嵌套和三元运算符,全部实战演练,让</div>
                    </li>
                    <li><a href="/article/1943930420689170432.htm"
                           title="苦练Python第8天:while 循环之妙用" target="_blank">苦练Python第8天:while 循环之妙用</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/python%E5%90%8E%E7%AB%AF%E5%89%8D%E7%AB%AF%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">python后端前端人工智能</a>
                        <div>苦练Python第8天:while循环之妙用原文链接:https://dev.to/therahul_gupta/day-9100-while-loops-with-real-world-examples-528f作者:RahulGupta译者:倔强青铜三前言大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众</div>
                    </li>
                    <li><a href="/article/1943930167651004416.htm"
                           title="苦练Python第5天:字符串从入门到格式化" target="_blank">苦练Python第5天:字符串从入门到格式化</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/python%E5%90%8E%E7%AB%AF%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%89%8D%E7%AB%AF/1.htm">python后端人工智能前端</a>
                        <div>苦练Python第5天:字符串从入门到格式化原文链接:https://dev.to/therahul_gupta/day-5100-working-with-strings-basics-to-formatting-2kkn作者:RahulGupta译者:倔强青铜三前言大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我</div>
                    </li>
                                <li><a href="/article/106.htm"
                                       title="书其实只有三类" target="_blank">书其实只有三类</a>
                                    <span class="text-muted">西蜀石兰</span>
<a class="tag" taget="_blank" href="/search/%E7%B1%BB/1.htm">类</a>
                                    <div>一个人一辈子其实只读三种书,知识类、技能类、修心类。 
 
知识类的书可以让我们活得更明白。类似十万个为什么这种书籍,我一直不太乐意去读,因为单纯的知识是没法做事的,就像知道地球转速是多少一样(我肯定不知道),这种所谓的知识,除非用到,普通人掌握了完全是一种负担,维基百科能找到的东西,为什么去记忆? 
知识类的书,每个方面都涉及些,让自己显得不那么没文化,仅此而已。社会认为的学识渊博,肯定不是站在</div>
                                </li>
                                <li><a href="/article/233.htm"
                                       title="《TCP/IP 详解,卷1:协议》学习笔记、吐槽及其他" target="_blank">《TCP/IP 详解,卷1:协议》学习笔记、吐槽及其他</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/tcp/1.htm">tcp</a>
                                    <div>《TCP/IP 详解,卷1:协议》是经典,但不适合初学者。它更像是一本字典,适合学过网络的人温习和查阅一些记不清的概念。 
 
这本书,我看的版本是机械工业出版社、范建华等译的。这本书在我看来,翻译得一般,甚至有明显的错误。如果英文熟练,看原版更好: 
http://pcvr.nl/tcpip/ 
 
下面是我的一些笔记,包括我看书时有疑问的地方,也有对该书的吐槽,有不对的地方请指正: 
 
1.</div>
                                </li>
                                <li><a href="/article/360.htm"
                                       title="Linux—— 静态IP跟动态IP设置" target="_blank">Linux—— 静态IP跟动态IP设置</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/IP/1.htm">IP</a>
                                    <div>一.在终端输入 
vi /etc/sysconfig/network-scripts/ifcfg-eth0 
静态ip模板如下: 
DEVICE="eth0"      #网卡名称
BOOTPROTO="static" #静态IP(必须)
HWADDR="00:0C:29:B5:65:CA" #网卡mac地址
IPV6INIT=&q</div>
                                </li>
                                <li><a href="/article/487.htm"
                                       title="Informatica update strategy transformation" target="_blank">Informatica update strategy transformation</a>
                                    <span class="text-muted">18289753290</span>

                                    <div>更新策略组件:   标记你的数据进入target里面做什么操作,一般会和lookup配合使用,有时候用0,1,1代表   forward  rejected rows被选中,rejected row是输出在错误文件里,不想看到reject输出,将错误输出到文件,因为有时候数据库原因导致某些column不能update,reject就会output到错误文件里面供查看,在workflow的</div>
                                </li>
                                <li><a href="/article/614.htm"
                                       title="使用Scrapy时出现虽然队列里有很多Request但是却不下载,造成假死状态" target="_blank">使用Scrapy时出现虽然队列里有很多Request但是却不下载,造成假死状态</a>
                                    <span class="text-muted">酷的飞上天空</span>
<a class="tag" taget="_blank" href="/search/request/1.htm">request</a>
                                    <div>现象就是: 
程序运行一段时间,可能是几十分钟或者几个小时,然后后台日志里面就不出现下载页面的信息,一直显示上一分钟抓取了0个网页的信息。 
刚开始已经猜到是某些下载线程没有正常执行回调方法引起程序一直以为线程还未下载完成,但是水平有限研究源码未果。 
经过不停的google终于发现一个有价值的信息,是给twisted提出的一个bugfix 
连接地址如下http://twistedmatrix.</div>
                                </li>
                                <li><a href="/article/741.htm"
                                       title="利用预测分析技术来进行辅助医疗" target="_blank">利用预测分析技术来进行辅助医疗</a>
                                    <span class="text-muted">蓝儿唯美</span>
<a class="tag" taget="_blank" href="/search/%E5%8C%BB%E7%96%97/1.htm">医疗</a>
                                    <div>2014年,克利夫兰诊所(Cleveland Clinic)想要更有效地控制其手术中心做膝关节置换手术的费用。整个系统每年大约进行2600例此类手术,所以,即使降低很少一部分成本,都可以为诊 所和病人节约大量的资金。为了找到适合的解决方案,供应商将视野投向了预测分析技术和工具,但其分析团队还必须花时间向医生解释基于数据的治疗方案意味着 什么。  
克利夫兰诊所负责企业信息管理和分析的医疗</div>
                                </li>
                                <li><a href="/article/868.htm"
                                       title="java 线程(一):基础篇" target="_blank">java 线程(一):基础篇</a>
                                    <span class="text-muted">DavidIsOK</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B/1.htm">线程</a>
                                    <div>                                                        &nbs</div>
                                </li>
                                <li><a href="/article/995.htm"
                                       title="Tomcat服务器框架之Servlet开发分析" target="_blank">Tomcat服务器框架之Servlet开发分析</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a>
                                    <div>最近使用Tomcat做web服务器,使用Servlet技术做开发时,对Tomcat的框架的简易分析: 
 
疑问: 为什么我们在继承HttpServlet类之后,覆盖doGet(HttpServletRequest req, HttpServetResponse rep)方法后,该方法会自动被Tomcat服务器调用,doGet方法的参数有谁传递过来?怎样传递? 
 
分析之我见: doGet方法的</div>
                                </li>
                                <li><a href="/article/1122.htm"
                                       title="揭秘玖富的粉丝营销之谜 与小米粉丝社区类似" target="_blank">揭秘玖富的粉丝营销之谜 与小米粉丝社区类似</a>
                                    <span class="text-muted">aoyouzi</span>
<a class="tag" taget="_blank" href="/search/%E6%8F%AD%E7%A7%98%E7%8E%96%E5%AF%8C%E7%9A%84%E7%B2%89%E4%B8%9D%E8%90%A5%E9%94%80%E4%B9%8B%E8%B0%9C/1.htm">揭秘玖富的粉丝营销之谜</a>
                                    <div>玖富旗下悟空理财凭借着一个微信公众号上线当天成交量即破百万,第七天成交量单日破了1000万;第23天时,累计成交量超1个亿……至今成立不到10个月,粉丝已经超过500万,月交易额突破10亿,而玖富平台目前的总用户数也已经超过了1800万,位居P2P平台第一位。很多互联网金融创业者慕名前来学习效仿,但是却鲜有成功者,玖富的粉丝营销对外至今仍然是个谜。 
  
  近日,一直坚持微信粉丝营销</div>
                                </li>
                                <li><a href="/article/1249.htm"
                                       title="Java web的会话跟踪技术" target="_blank">Java web的会话跟踪技术</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/url%E4%BC%9A%E8%AF%9D/1.htm">url会话</a><a class="tag" taget="_blank" href="/search/Cookie%E4%BC%9A%E8%AF%9D/1.htm">Cookie会话</a><a class="tag" taget="_blank" href="/search/Seession%E4%BC%9A%E8%AF%9D/1.htm">Seession会话</a><a class="tag" taget="_blank" href="/search/Java+Web/1.htm">Java Web</a><a class="tag" taget="_blank" href="/search/%E9%9A%90%E8%97%8F%E5%9F%9F%E4%BC%9A%E8%AF%9D/1.htm">隐藏域会话</a>
                                    <div>会话跟踪主要是用在用户页面点击不同的页面时,需要用到的技术点 
  
会话:多次请求与响应的过程 
  
  
1,url地址传递参数,实现页面跟踪技术 
         格式:传一个参数的 
url?名=值  
    传两个参数的 
url?名=值 &名=值 
  
关键代码</div>
                                </li>
                                <li><a href="/article/1376.htm"
                                       title="web.xml之Servlet配置" target="_blank">web.xml之Servlet配置</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/Servlet%E9%85%8D%E7%BD%AE/1.htm">Servlet配置</a>
                                    <div>定义: 
<servlet>
  <servlet-name>myservlet</servlet-name>
  <servlet-class>com.myapp.controller.MyFirstServlet</servlet-class>
  <init-param>
   <param-name></div>
                                </li>
                                <li><a href="/article/1503.htm"
                                       title="利用svnsync实现SVN同步备份" target="_blank">利用svnsync实现SVN同步备份</a>
                                    <span class="text-muted">sunjing</span>
<a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a><a class="tag" taget="_blank" href="/search/%E5%90%8C%E6%AD%A5/1.htm">同步</a><a class="tag" taget="_blank" href="/search/E000022/1.htm">E000022</a><a class="tag" taget="_blank" href="/search/svnsync/1.htm">svnsync</a><a class="tag" taget="_blank" href="/search/%E9%95%9C%E5%83%8F/1.htm">镜像</a>
                                    <div>1. 在备份SVN服务器上建立版本库 
   svnadmin create test 
2. 创建pre-revprop-change文件 
    cd test/hooks/ 
    cp pre-revprop-change.tmpl pre-revprop-change 
3. 修改pre-revprop-</div>
                                </li>
                                <li><a href="/article/1630.htm"
                                       title="【分布式数据一致性三】MongoDB读写一致性" target="_blank">【分布式数据一致性三】MongoDB读写一致性</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a>
                                    <div>本系列文章结合MongoDB,探讨分布式数据库的数据一致性,这个系列文章包括: 
 
 数据一致性概述与CAP 
 最终一致性(Eventually Consistency) 
 网络分裂(Network Partition)问题 
 多数据中心(Multi Data Center) 
 多个写者(Multi Writer)最终一致性 
 一致性图表(Consistency Chart) 
 数据</div>
                                </li>
                                <li><a href="/article/1757.htm"
                                       title="Anychart图表组件-Flash图转IMG普通图的方法" target="_blank">Anychart图表组件-Flash图转IMG普通图的方法</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/Flash/1.htm">Flash</a>
                                    <div>问题背景:项目使用的是Anychart图表组件,渲染出来的图是Flash的,往往一个页面有时候会有多个flash图,而需求是让我们做一个打印预览和打印功能,让多个Flash图在一个页面上打印出来。 
  
那么我们打印预览的思路是获取页面的body元素,然后在打印预览界面通过$("body").append(html)的形式显示预览效果,结果让人大跌眼镜:Flash是</div>
                                </li>
                                <li><a href="/article/1884.htm"
                                       title="Window 80端口被占用 WHY?" target="_blank">Window 80端口被占用 WHY?</a>
                                    <span class="text-muted">bozch</span>
<a class="tag" taget="_blank" href="/search/%E7%AB%AF%E5%8F%A3%E5%8D%A0%E7%94%A8/1.htm">端口占用</a><a class="tag" taget="_blank" href="/search/window/1.htm">window</a>
                                    <div>平时在启动一些可能使用80端口软件的时候,会提示80端口已经被其他软件占用,那一般又会有那些软件占用这些端口呢? 
   下面坐下总结: 
        1、web服务器是最经常见的占用80端口的,例如:tomcat , apache  , IIS , Php等等; 
        2</div>
                                </li>
                                <li><a href="/article/2011.htm"
                                       title="编程之美-数组的最大值和最小值-分治法(两种形式)" target="_blank">编程之美-数组的最大值和最小值-分治法(两种形式)</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E/1.htm">编程之美</a>
                                    <div>

import java.util.Arrays;

public class MinMaxInArray {

	/**
	 * 编程之美 数组的最大值和最小值 分治法
	 * 两种形式
	 */
	public static void main(String[] args) {
		int[] t={11,23,34,4,6,7,8,1,2,23};
		int[] </div>
                                </li>
                                <li><a href="/article/2138.htm"
                                       title="Perl正则表达式" target="_blank">Perl正则表达式</a>
                                    <span class="text-muted">chenbowen00</span>
<a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/perl/1.htm">perl</a>
                                    <div>首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是: 
 
 
 
匹配:m/<regexp>;/ (还可以简写为 /<regexp>;/ ,略去 m) 
 
 
 
替换:s/<pattern>;/<replacement>;/ 
 
 
 
转化:tr/<pattern>;/<replacemnt>;</div>
                                </li>
                                <li><a href="/article/2265.htm"
                                       title="[宇宙与天文]行星议会是否具有本行星大气层以外的权力呢?" target="_blank">[宇宙与天文]行星议会是否具有本行星大气层以外的权力呢?</a>
                                    <span class="text-muted">comsci</span>

                                    <div> 
 
      举个例子: 地球,地球上由200多个国家选举出一个代表地球联合体的议会,那么现在地球联合体遇到一个问题,地球这颗星球上面的矿产资源快要采掘完了....那么地球议会全体投票,一致通过一项带有法律性质的议案,既批准地球上的国家用各种技术手段在地球以外开采矿产资源和其它资源........ 
 
   &</div>
                                </li>
                                <li><a href="/article/2392.htm"
                                       title="Oracle Profile 使用详解" target="_blank">Oracle Profile 使用详解</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/profile/1.htm">profile</a><a class="tag" taget="_blank" href="/search/%E8%B5%84%E6%BA%90%E9%99%90%E5%88%B6/1.htm">资源限制</a>
                                    <div>Oracle Profile 使用详解 转 
一、目的: 
Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。 
 
二、条件: 
创建profile必须要有CREATE PROFIL</div>
                                </li>
                                <li><a href="/article/2519.htm"
                                       title="How HipChat Stores And Indexes Billions Of Messages Using ElasticSearch & Redis" target="_blank">How HipChat Stores And Indexes Billions Of Messages Using ElasticSearch & Redis</a>
                                    <span class="text-muted">dengkane</span>
<a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/Lucene/1.htm">Lucene</a>
                                    <div>This article is from an interview with Zuhaib Siddique, a production engineer at HipChat, makers of group chat and IM for teams. 
HipChat started in an unusual space, one you might not </div>
                                </li>
                                <li><a href="/article/2646.htm"
                                       title="循环小示例,菲波拉契序列,循环解一元二次方程以及switch示例程序" target="_blank">循环小示例,菲波拉契序列,循环解一元二次方程以及switch示例程序</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/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div># include <stdio.h>

int main(void)
{
	int n;
	int i;
	int f1, f2, f3;

	f1 = 1;
	f2 = 1;

	printf("请输入您需要求的想的序列:");
	scanf("%d", &n);

	for (i=3; i<n; i</div>
                                </li>
                                <li><a href="/article/2773.htm"
                                       title="macbook的lamp环境" target="_blank">macbook的lamp环境</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/lamp/1.htm">lamp</a>
                                    <div>  
sudo vim /etc/apache2/httpd.conf 
  
/Library/WebServer/Documents 
是默认的网站根目录 
  
重启Mac上的Apache服务 
    
这个命令很早以前就查过了,但是每次使用的时候还是要在网上查: 
停止服务:sudo /usr/sbin/apachectl stop 
开启服务:s</div>
                                </li>
                                <li><a href="/article/2900.htm"
                                       title="java ArrayList源码 下" target="_blank">java ArrayList源码 下</a>
                                    <span class="text-muted">shuizhaosi888</span>
<a class="tag" taget="_blank" href="/search/ArrayList%E6%BA%90%E7%A0%81/1.htm">ArrayList源码</a>
                                    <div>版本 jdk-7u71-windows-x64 
  
JavaSE7 ArrayList源码上:http://flyouwith.iteye.com/blog/2166890    
  
	/**
	 * 从这个列表中移除所有c中包含元素
	 */
	public boolean removeAll(Collection<?> c) {</div>
                                </li>
                                <li><a href="/article/3027.htm"
                                       title="Spring Security(08)——intercept-url配置" target="_blank">Spring Security(08)——intercept-url配置</a>
                                    <span class="text-muted">234390216</span>
<a class="tag" taget="_blank" href="/search/Spring+Security/1.htm">Spring Security</a><a class="tag" taget="_blank" href="/search/intercept-url/1.htm">intercept-url</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90/1.htm">访问权限</a><a class="tag" taget="_blank" href="/search/%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE/1.htm">访问协议</a><a class="tag" taget="_blank" href="/search/%E8%AF%B7%E6%B1%82%E6%96%B9%E6%B3%95/1.htm">请求方法</a>
                                    <div>intercept-url配置 
目录 
1.1     指定拦截的url 
1.2     指定访问权限 
1.3     指定访问协议 
1.4     指定请求方法 
   

1.1   &n</div>
                                </li>
                                <li><a href="/article/3154.htm"
                                       title="Linux环境下的oracle安装" target="_blank">Linux环境下的oracle安装</a>
                                    <span class="text-muted">jayung</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a>
                                    <div>linux系统下的oracle安装 
本文档是Linux(redhat6.x、centos6.x、redhat7.x) 64位操作系统安装Oracle 11g(Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production),本文基于各种网络资料精心整理而成,共享给有需要的朋友。如有问题可联系:QQ:52-7</div>
                                </li>
                                <li><a href="/article/3281.htm"
                                       title="hotspot虚拟机" target="_blank">hotspot虚拟机</a>
                                    <span class="text-muted">leichenlei</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><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><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/%E6%96%87%E6%A1%A3/1.htm">文档</a>
                                    <div>JVM参数  
http://docs.oracle.com/javase/6/docs/technotes/guides/vm/index.html 
  
JVM工具 
http://docs.oracle.com/javase/6/docs/technotes/tools/index.html 
  
JVM垃圾回收 
http://www.oracle.com</div>
                                </li>
                                <li><a href="/article/3408.htm"
                                       title="读《Node.js项目实践:构建可扩展的Web应用》 ——引编程慢慢变成系统化的“砌砖活”" target="_blank">读《Node.js项目实践:构建可扩展的Web应用》 ——引编程慢慢变成系统化的“砌砖活”</a>
                                    <span class="text-muted">noaighost</span>
<a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a>
                                    <div>读《Node.js项目实践:构建可扩展的Web应用》 
——引编程慢慢变成系统化的“砌砖活” 
眼里的Node.JS 
初初接触node是一年前的事,那时候年少不更事。还在纠结什么语言可以编写出牛逼的程序,想必每个码农都会经历这个月经性的问题:微信用什么语言写的?facebook为什么推荐系统这么智能,用什么语言写的?dota2的外挂这么牛逼,用什么语言写的?……用什么语言写这句话,困扰人也是阻碍</div>
                                </li>
                                <li><a href="/article/3535.htm"
                                       title="快速开发Android应用" target="_blank">快速开发Android应用</a>
                                    <span class="text-muted">rensanning</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>Android应用开发过程中,经常会遇到很多常见的类似问题,解决这些问题需要花时间,其实很多问题已经有了成熟的解决方案,比如很多第三方的开源lib,参考 
Android Libraries 和 
Android UI/UX Libraries。 
 
编码越少,Bug越少,效率自然会高。 
 
但可能由于 根本没听说过、听说过但没用过、特殊原因不能用、自己已经有了解决方案等等原因,这些成熟的解决</div>
                                </li>
                                <li><a href="/article/3662.htm"
                                       title="理解Java中的弱引用" target="_blank">理解Java中的弱引用</a>
                                    <span class="text-muted">tomcat_oracle</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a>
                                    <div> 不久之前,我 
面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。     然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经验和高学历背景的应聘者中,居然只有两个人知道弱引用的存在,但是在这两个人之中只有一个人真正了</div>
                                </li>
                                <li><a href="/article/3789.htm"
                                       title="关于<c:out value=""/>标签输出html标签" target="_blank">关于<c:out value=""/>标签输出html标签</a>
                                    <span class="text-muted">xshdch</span>
<a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a>
                                    <div>http://back-888888.iteye.com/blog/1181202 
 
 
关于<c:out value=""/>标签的使用,其中有一个属性是escapeXml默认是true(将html标签当做转移字符,直接显示不在浏览器上面进行解析),当设置escapeXml属性值为false的时候就是不过滤xml,这样就能在浏览器上解析html标签, 
&nb</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>