Scrapy 1.3.0 使用简介

scrapy 1.3.0  python 2.7

创建一个项目:

Before you startscraping, you will have to set up a new Scrapy project. Enter a directory whereyou’d like to store your code and run:

scrapy startproject tutorial

然后就会得到一系列文件:

第一个爬虫

import scrapy

class QuotesSpider(scrapy.Spider):

    name ="quotes"

    def start_requests(self):

        urls = [

            'Quotes to Scrape',

            'Quotes to Scrape',

        ]

        for url in urls:

            yield scrapy.Request(url=url,callback=self.parse)

    def parse(self,response):

        page =response.url.split("/")[-2]

        filename = 'quotes-%s.html' % page

        with open(filename, 'wb') as f:

            f.write(response.body)

        self.log('Saved file %s' % filename)

自定义的QuotesSpider类继承了scrapy.Spider类,并且有三个属性:

  1. name:用来识别爬虫,必须唯一
  2. start_requests():必须返回一个请求连接的可迭代的对象(一个请求的生成器或者列表)
  3. parse():被调用,用来处理服务器的响应,response 参数是TextResponse 的实例,保存整个网页用来被更有用的函数处理。

运行爬虫:

scrapy crawl quotes

结果:

刚刚的运行过程:

start_requests方法返回了scrapy的请求清单(scrapy.Request objects),

一旦接收到请求,scrapy会初始化Response对象,并且调用相关方法(例子中用的是parse方法)

将response传递给它。

 start_requests简介:

用urls生成请求列表的start_requests()方法,可以用写了一系列的URLS的start_urls属性代替,

这个列表将会被默认的接口实现start_requests(),来初始化spider的请求。

import scrapy

class QuotesSpider(scrapy.Spider):

    name = "quotes"

    start_urls =[

        'Quotes to Scrape',

        'Quotes to Scrape',

    ]

    def parse(self, response):

        page =response.url.split("/")[-2]

        filename = 'quotes-%s.html' % page

        with open(filename, 'wb') as f:

            f.write(response.body)

parse函数没有显式调用,因为在scrapy中parse是默认的回调方法

抽取数据

scrapy最好用的学习抽取数据的方法是选择器来使用scrapy shell。

Scrapy shell — Scrapy 2.11.0 documentation

Scrapy shell会自动用下载的网页创建一些实用对象,例如:

Response object andthe Selector objects (for both HTML and XML content)

使用scrapy shell测试数据

当抽取数据为空时,可以用浏览器查看请求的网页

Finally you hitCtrl-D (or Ctrl-Z in Windows) to exit the shell and resume the crawling:

用css选择器来抽取数据

scrapy shell "Quotes to Scrape"

使用 response.css('title')抽取数据会得到一张叫“ SelectorList”的列表。SelectorList代表 Selector对象列表,这个对象包装了 XML/HTML的元素,这些元素可以因一部的抽取数据。

 ::text 用在CSS查询中, 表示我们只想抽取 标签中的text元素。</p> <p></p> <p>因为extract只是获取到一个列表,所以有extract_first()、response.css('title::text')<span style="background-color:#00FFFF;">[0]</span>.extract()这样的用法,可以直接抽取到列表中的元素</p> <p></p> <p>注意: using.extract_first() avoids an<span style="color:#FF0000;"> IndexError</span> andreturns None when it doesn’t find any element matching the selection.</p> <p></p> <p>参考下载的页面学习:</p> <p></p> <p>后面是使用正则表达式抽取数据</p> <p></p> <p></p> <p></p> <p>XPath:a brief intro</p> <p>除了CSS, Scrapy 选择器也支持 XPath的表达形式:</p> <p>使用火狐浏览器的firebug:</p> <p></p> <p>抽取名言和作者</p> <p>首先观察网页 Quotes to Scrape:</p> <p>抽取特定内容:</p> <p></p> <p></p> <p></p> <p></p> <p>空格好像是用来处理div class=“tags”这个 div标签中第一个标签。</p> <p></p> <p></p> <p>知道每个数据怎么取出后,可以使用代码获得:</p> <p><span style="background-color:#00FFFF;">for quote inresponse.css("div.quote"):</span></p> <p><span style="background-color:#00FFFF;">...     text =quote.css("span.text::text").extract_first()</span></p> <p><span style="background-color:#00FFFF;">...     author =quote.css("small.author::text").extract_first()</span></p> <p><span style="background-color:#00FFFF;">...     tags = quote.css("div.tagsa.tag::text").extract()</span></p> <p><span style="background-color:#00FFFF;">...     print(dict(text=text, author=author,tags=tags))</span></p> <p></p> <p></p> <p></p> <p>最后得到的爬虫:</p> <p><span style="background-color:#00FFFF;">import scrapy</span></p> <p><span style="background-color:#00FFFF;">class QuotesSpider(scrapy.Spider):</span></p> <p><span style="background-color:#00FFFF;">   name = "quotes"</span></p> <p><span style="background-color:#00FFFF;">   start_urls = [</span></p> <p><span style="background-color:#00FFFF;">        '</span>Quotes to Scrape<span style="background-color:#00FFFF;">',</span></p> <p><span style="background-color:#00FFFF;">        '</span>Quotes to Scrape<span style="background-color:#00FFFF;">',</span></p> <p><span style="background-color:#00FFFF;">   ]</span></p> <p><span style="background-color:#00FFFF;">   def parse(self, response):</span></p> <p><span style="background-color:#00FFFF;">        for quote in response.css('div.quote'):</span></p> <p><span style="background-color:#00FFFF;">            yield {</span></p> <p><span style="background-color:#00FFFF;">                'text':quote.css('span.text::text').extract_first(),</span></p> <p><span style="background-color:#00FFFF;">                'author': quote.css('spansmall::text').extract_first(),</span></p> <p><span style="background-color:#00FFFF;">                'tags': quote.css('div.tagsa.tag::text').extract(),</span></p> <p><span style="background-color:#00FFFF;">            }</span></p> <p></p> <p></p> <p>存储爬取的数据:</p> <p></p> <p>使用命令行:</p> <ol> <li>scrapy crawl quotes -o quotes.json  -json格式</li> <li>scrapy crawl quotes -o quotes.jl  -jsonlines格式</li> </ol> <p></p> <p></p> <p>下一页:</p> <p>先观察代码:</p> <p></p> <p></p> <p>但是这样只能获取锚元素,想要获得连接可以:</p> <p></p> <p></p> <p>下面是能自动进入下一页爬取的爬虫:</p> <p><span style="background-color:#00FFFF;">import scrapy</span></p> <p><span style="background-color:#00FFFF;">class QuotesSpider(scrapy.Spider):</span></p> <p><span style="background-color:#00FFFF;">   name = "quotes"</span></p> <p><span style="background-color:#00FFFF;">   start_urls = [</span></p> <p><span style="background-color:#00FFFF;">        '</span>Quotes to Scrape<span style="background-color:#00FFFF;">',</span></p> <p><span style="background-color:#00FFFF;">   ]</span></p> <p><span style="background-color:#00FFFF;">   def parse(self, response):</span></p> <p><span style="background-color:#00FFFF;">        for quote in response.css('div.quote'):</span></p> <p><span style="background-color:#00FFFF;">            yield {</span></p> <p><span style="background-color:#00FFFF;">                'text':quote.css('span.text::text').extract_first(),</span></p> <p><span style="background-color:#00FFFF;">                'author': quote.css('spansmall::text').extract_first(),</span></p> <p><span style="background-color:#00FFFF;">                'tags': quote.css('div.tagsa.tag::text').extract(),</span></p> <p><span style="background-color:#00FFFF;">            }</span></p> <p><span style="background-color:#00FFFF;">        next_page = response.css('li.nexta::attr(href)').extract_first()</span></p> <p><span style="background-color:#00FFFF;">        if next_page is not None:</span></p> <p><span style="background-color:#00FFFF;">            next_page =response.urljoin(next_page)</span></p> <p><span style="background-color:#00FFFF;">            yield scrapy.Request(next_page,callback=self.parse)</span></p> <p></p> <p></p> <p>至此爬虫可以用urljoin()建立一个绝对URL,并且能产生到下一页的新请求,然后将</p> <p>自己注册到毁掉函数中,抽取下一页数据,直到爬完所有数据。</p> <p></p> <p>通过以上方法,可以构建一个复杂的爬虫,<span style="color:#FF0000;">按照用户定义</span><span style="color:#FF0000;">rules</span>来爬取网页。</p> <p></p> <p></p> <p></p> <p>使用scrapy参数:</p> <p></p> <p><span style="background-color:#00FFFF;">import scrapy</span></p> <p><span style="background-color:#00FFFF;">class QuotesSpider(scrapy.Spider):</span></p> <p><span style="background-color:#00FFFF;">   name = "quotes"</span></p> <p><span style="background-color:#00FFFF;">   def start_requests(self):</span></p> <p><span style="background-color:#00FFFF;">        url = '</span>Quotes to Scrape<span style="background-color:#00FFFF;">'</span></p> <p><span style="background-color:#FF0000;">       tag = getattr(self, 'tag', None)</span></p> <p><span style="background-color:#FF0000;">       if tag is not None:</span></p> <p><span style="background-color:#FF0000;">            url = url + 'tag/' + tag</span></p> <p><span style="background-color:#00FFFF;">        yield scrapy.Request(url, self.parse)</span></p> <p><span style="background-color:#00FFFF;">   def parse(self, response):</span></p> <p><span style="background-color:#00FFFF;">        for quote in response.css('div.quote'):</span></p> <p><span style="background-color:#00FFFF;">            yield {</span></p> <p><span style="background-color:#00FFFF;">                'text':quote.css('span.text::text').extract_first(),</span></p> <p><span style="background-color:#00FFFF;">                'author': quote.css('span smalla::text').extract_first(),</span></p> <p><span style="background-color:#00FFFF;">            }</span></p> <p><span style="background-color:#00FFFF;">        next_page = response.css('li.nexta::attr(href)').extract_first()</span></p> <p><span style="background-color:#00FFFF;">        if next_page is not None:</span></p> <p><span style="background-color:#00FFFF;">            next_page =response.urljoin(next_page)</span></p> <p><span style="background-color:#00FFFF;">            yield scrapy.Request(next_page,self.parse)</span></p> <p></p> <p>针对上面的程序,使用命令:</p> <p><span style="background-color:#00FFFF;">scrapy crawl quotes -oquotes-humor.json -a </span> <span style="background-color:#00FFFF;">tag=humor</span></p> <p></p> <p> it will only visit URLs from the humor tag,such as  http://quotes.toscrape.com/tag/humor.</p> </div> </div> </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1742428822390718464"></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">你可能感兴趣的:(scrapy)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1943334204397907968.htm" title="Scrapy分布式爬虫进阶:动态代理与并发优化实战" target="_blank">Scrapy分布式爬虫进阶:动态代理与并发优化实战</a> <span class="text-muted">Kelaru</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/project/1.htm">project</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>写在前面。。。继“动态网页”“登录网站”“经验总结”“分布式爬虫”后,本篇献上Scrapy-Redis进阶实战,基于QuotestoScrape,聚焦动态代理池和并发优化,代码简洁,经验点燃智慧,适合新手到老兵。准备工作1.环境配置Python:3.8+(推荐3.10)。依赖安装:pipinstallscrapy==2.11.2scrapy-redis==0.7.4redis==5.0.8requ</div> </li> <li><a href="/article/1943138683486007296.htm" title="Python爬虫实战:爬取ETF基金持仓变化" target="_blank">Python爬虫实战:爬取ETF基金持仓变化</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/%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><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E6%81%AF%E5%8F%AF%E8%A7%86%E5%8C%96/1.htm">信息可视化</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>1.项目背景ETF(Exchange-TradedFund,交易型开放式指数基金)作为一种在交易所上市交易的基金,其持仓信息对于投资者具有重要参考价值。了解ETF的持仓变化,可以帮助投资者判断市场趋势和资金流向。本文将通过Python爬虫技术,自动化地获取ETF基金的持仓变化数据,进行存储和分析。2.技术选型与环境准备2.1技术选型编程语言:Python3.8+爬虫框架:Scrapy数据解析:Be</div> </li> <li><a href="/article/1943007578975956992.htm" title="UA池和代理IP池" target="_blank">UA池和代理IP池</a> <span class="text-muted">itLaity</span> <a class="tag" taget="_blank" href="/search/Python%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E8%AE%B2%E8%A7%A3%E4%B8%8E%E6%80%BB%E7%BB%93/1.htm">Python基础知识讲解与总结</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a><a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/py/1.htm">py</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%90%86%E6%A8%A1%E5%BC%8F/1.htm">代理模式</a> <div>scrapy中中间件:位于scrapy引擎和下载器之间的一层组件作用:(1)引擎将请求传递给下载器过程中,下载中间件可以对请求进行一系列处理。比如设置请求的User-Agent,设置代理等(2)在下载器完成将Response传递给引擎中,下载中间件可以对响应进行一系列处理。比如进行gzip解压等。middlewares(中间件py文件)spider:从这里开始--->作用:产生一个或者一批url/</div> </li> <li><a href="/article/1942979853963816960.htm" title="Scrapy与分布式开发(2.3):lxml+xpath基本指令和提取方法详解" target="_blank">Scrapy与分布式开发(2.3):lxml+xpath基本指令和提取方法详解</a> <span class="text-muted">九月镇灵将</span> <a class="tag" taget="_blank" href="/search/%E6%89%93%E9%80%A0%E9%AB%98%E6%95%88%E7%88%AC%E8%99%AB%E7%B3%BB%E7%BB%9F/1.htm">打造高效爬虫系统</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/xpath/1.htm">xpath</a><a class="tag" taget="_blank" href="/search/lxml/1.htm">lxml</a> <div>lxml+xpath基本指令和提取方法详解一、XPath简介XPath,全称为XMLPathLanguage,是一种在XML文档中查找信息的语言。它允许用户通过简单的路径表达式在XML文档中进行导航。XPath不仅适用于XML,还常用于处理HTML文档。二、基本指令和提取方法选择节点使用XPath,你可以轻松地选择XML文档中的节点。*选择根节点:/*选择子节点:/parent/child*选择所</div> </li> <li><a href="/article/1942800229518602240.htm" title="Python爬虫实战:使用Scrapy和Selenium高效爬取USPTO美国专利数据" target="_blank">Python爬虫实战:使用Scrapy和Selenium高效爬取USPTO美国专利数据</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</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/scrapy/1.htm">scrapy</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/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a> <div>引言在当今的知识经济时代,专利数据蕴含着巨大的商业和技术价值。美国专利商标局(USPTO)作为全球最大的专利数据库之一,收录了数百万项专利信息,这些数据对于企业竞争分析、技术趋势预测和学术研究都具有重要意义。本文将详细介绍如何使用Python构建一个高效、稳定的USPTO专利数据爬虫系统。一、USPTO专利数据库概述1.1USPTO数据库结构USPTO提供了多种访问专利数据的途径:专利全文和图像数</div> </li> <li><a href="/article/1941879794656407552.htm" title="Python Scrapy的爬虫中间件开发" target="_blank">Python Scrapy的爬虫中间件开发</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/ai/1.htm">ai</a> <div>PythonScrapy爬虫中间件开发:从原理到实战的深度解析关键词Scrapy中间件、爬虫扩展、请求响应处理、反爬绕过、中间件生命周期、钩子函数、分布式爬取摘要本文系统解析Scrapy爬虫中间件(SpiderMiddleware)的开发方法论,覆盖从基础概念到高级实践的全链路知识。通过第一性原理推导中间件的核心机制,结合层次化架构分析(理论→设计→实现→应用),提供生产级代码示例与可视化流程模型</div> </li> <li><a href="/article/1941782273586163712.htm" title="Python 爬虫入门(九):Scrapy安装及使用「详细介绍」" target="_blank">Python 爬虫入门(九):Scrapy安装及使用「详细介绍」</a> <span class="text-muted">blues_C</span> <a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98/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/scrapy/1.htm">scrapy</a> <div>Python爬虫入门(九):Scrapy安装及使用「详细介绍」前言1.Scrapy简介2.Scrapy的安装2.1环境准备2.2安装Scrapy3.创建Scrapy项目3.1创建项目3.2项目结构简介4.编写爬虫4.1创建爬虫4.2解析数据4.3运行爬虫5.存储数据5.1存储为JSON文件5.2存储到数据库5.2.1MongoDB6.处理请求和响应6.1请求头设置6.2处理响应7.高级功能7.1使</div> </li> <li><a href="/article/1941757184358543360.htm" title="数据分析全流程:从收集到可视化的高效实战" target="_blank">数据分析全流程:从收集到可视化的高效实战</a> <span class="text-muted">晨曦543210</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>1.数据收集来源:数据库、API、传感器、日志文件、社交媒体、问卷调查等。工具:Python(requests、Scrapy)、SQL、Excel、Kafka(实时流数据)。2.数据清洗处理缺失、重复、错误或不一致的数据:缺失值:删除、填充(均值/中位数/众数)、插值或预测。异常值:使用箱线图、Z-score或IQR方法检测并处理。格式标准化:统一日期、单位、文本格式(如大小写、去除空格)。去重:</div> </li> <li><a href="/article/1941756554663489536.htm" title="R语言初学者爬虫简单模板" target="_blank">R语言初学者爬虫简单模板</a> <span class="text-muted">q56731523</span> <a class="tag" taget="_blank" href="/search/r%E8%AF%AD%E8%A8%80/1.htm">r语言</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><a class="tag" taget="_blank" href="/search/iphone/1.htm">iphone</a> <div>习惯使用python做爬虫的,反过来使用R语言可能有点不太习惯,正常来说R语言好不好学完全取决于你的学习背景以及任务复杂情况。对于入门学者来说,R语言使用rvest+httr组合,几行代码就能完成简单爬取(比Python的Scrapy简单得多),R语言数据处理优势明显,爬取后可直接用dplyr/tidyr清洗,小打小闹用R语言完全没问题,如果是企业级大型项目还是有限考虑python,综合成本还是p</div> </li> <li><a href="/article/1941525949925355520.htm" title="Python爬虫:Scrapy报错:ModuleNotFoundError: No module named ‘scrapy.contrib‘" target="_blank">Python爬虫:Scrapy报错:ModuleNotFoundError: No module named ‘scrapy.contrib‘</a> <span class="text-muted">濯一一</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/bug/1.htm">bug</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</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> <div>项目场景:今天,又开始自学Python爬虫Scrapy框架辽,爬爬爬于是又导包报错辽,,,问题描述:提示:第一行导入scrapy.contrib时报错了。原因分析:百度:找到类似的问题和解决方式:#bug:fromscrapytest.NewsItemsimportNewsItem#改为#debug:fromscrapytest.scrapytest.itemsimportNewsItem思考:重</div> </li> <li><a href="/article/1941429755312140288.htm" title="Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记" target="_blank">Ubuntu 22.04 修改默认 Python 版本为 Python3 笔记</a> <span class="text-muted">笑衬人心。</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/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>Ubuntu系统默认使用的是Python2.x作为python命令的映射,而现代开发(如pip、Django、Flask、Scrapy等)大多基于Python3。本笔记将教你如何将默认python命令指向Python3(如Python3.8、3.10)。背景说明在Ubuntu22.04中:系统默认安装了Python2和Python3;运行python命令默认启动的是Python2;运行python</div> </li> <li><a href="/article/1941106783149944832.htm" title="Web爬虫编程语言选择指南" target="_blank">Web爬虫编程语言选择指南</a> <span class="text-muted">q56731523</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</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>刚学爬虫的小伙伴常常为选择那种语言来写爬虫而烦恼,今天我将总结几种语言的优劣势,然后选择适合编写Web爬虫的编程语言。这就需要我们考虑开发效率、生态库支持、并发性能等因素。以下是主流选择及特点跟着一起看看吧:1.Python(推荐首选)优势:丰富库支持:Requests(HTTP请求)、BeautifulSoup/lxml(HTML解析)、Scrapy(全功能框架)、Selenium(模拟浏览器)</div> </li> <li><a href="/article/1940611946256592896.htm" title="Python 爬虫实战:知乎热榜趋势分析(话题生命周期 + 影响力评估)" target="_blank">Python 爬虫实战:知乎热榜趋势分析(话题生命周期 + 影响力评估)</a> <span class="text-muted">Python核芯</span> <a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/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>一、引言知乎作为国内知名的问答社区,其热榜功能汇聚了当下最受关注的话题。这些话题的热度变化反映了公众兴趣的动态,对于内容创作者、市场营销人员和数据分析师等具有极高的参考价值。本文将详细介绍如何通过Python和Scrapy技术实现知乎热榜数据的自动化爬取,并结合数据分析手段进行话题热度分析和趋势预测。二、目标网站分析(一)知乎热榜页面结构知乎热榜页面(https://www.zhihu.com/h</div> </li> <li><a href="/article/1940263560538025984.htm" title="python爬虫爬百度云盘的资源" target="_blank">python爬虫爬百度云盘的资源</a> <span class="text-muted">oaa608868</span> <a class="tag" taget="_blank" href="/search/%E7%99%BE%E5%BA%A6%E4%BA%91/1.htm">百度云</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>最近百度云盘不知道为啥不提供资源检索,正好最近看了一下python,正好来练练手,写歌爬虫爬一下百度云盘的资源。分析了一下百度云盘的网友源码和js文件,里面有大量ajax的东西,利用json传输数据,前端显示。话说,这样数据爬去就方便多了,也不要用scrapy啥的,直接解析json数据就好。分析js文件提炼了下面三个链接:URL_SHARE='http://yun.baidu.com/pclo</div> </li> <li><a href="/article/1940253092926779392.htm" title="Python - 爬虫;Scrapy框架之插件Extensions(四)" target="_blank">Python - 爬虫;Scrapy框架之插件Extensions(四)</a> <span class="text-muted">MinggeQingchun</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/Scrapy/1.htm">Scrapy</a><a class="tag" taget="_blank" href="/search/extensions/1.htm">extensions</a> <div>阅读本文前先参考https://blog.csdn.net/MinggeQingchun/article/details/145904572在Scrapy中,扩展(Extensions)是一种插件,允许你添加额外的功能到你的爬虫项目中。这些扩展可以在项目的不同阶段执行,比如启动、关闭、处理请求、处理响应等。Extensions官网文档:Extensions—Scrapy2.12.0document</div> </li> <li><a href="/article/1939489119944110080.htm" title="Python爬虫实战:使用Scrapy+Selenium+Playwright高效爬取Stack Overflow问答数据" target="_blank">Python爬虫实战:使用Scrapy+Selenium+Playwright高效爬取Stack Overflow问答数据</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</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/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1/1.htm">微信</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%A7%91%E6%8A%80/1.htm">科技</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a> <div>摘要本文将详细介绍如何使用Python生态中最先进的爬虫技术组合(Scrapy+Selenium+Playwright)来爬取StackOverflow的问答数据。我们将从基础爬虫原理讲起,逐步深入到分布式爬虫、反反爬策略、数据存储等高级话题,并提供完整的可运行代码示例。本文适合有一定Python基础,想要掌握专业级网络爬虫技术的开发者阅读。1.爬虫技术概述1.1为什么选择StackOverflo</div> </li> <li><a href="/article/1939488993569730560.htm" title="Python爬虫实战:使用Scrapy+Selenium+Playwright高效爬取Coursera课程信息" target="_blank">Python爬虫实战:使用Scrapy+Selenium+Playwright高效爬取Coursera课程信息</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</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/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1/1.htm">微信</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%A7%91%E6%8A%80/1.htm">科技</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a> <div>前言在当今信息爆炸的时代,在线教育平台如Coursera提供了海量的高质量课程资源。对于学习者、教育研究者和数据分析师来说,获取这些平台的课程信息具有重要价值。本文将详细介绍如何使用Python爬虫技术高效爬取Coursera课程信息,并分析其中的技术难点与解决方案。1.Coursera网站分析Coursera是一个典型的现代Web应用,具有以下特点:采用React/Vue等前端框架构建,大量内容</div> </li> <li><a href="/article/1939228797962350592.htm" title="Python爬虫实战:研究Bleach库相关技术" target="_blank">Python爬虫实战:研究Bleach库相关技术</a> <span class="text-muted">ylfhpy</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">爬虫项目实战</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/php/1.htm">php</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/Bleach/1.htm">Bleach</a> <div>1.引言在大数据时代,网络内容采集已成为信息获取的重要手段。Python凭借其丰富的爬虫库(如Requests、Scrapy)和灵活的数据处理能力,成为网页爬虫开发的首选语言。然而,从互联网获取的内容往往包含恶意脚本、不安全标签等安全隐患,直接使用可能导致XSS(跨站脚本攻击)、数据泄露等风险。Bleach作为专业的HTML净化库,通过白名单机制提供了可靠的内容安全过滤方案。本文将结合实际案例,详</div> </li> <li><a href="/article/1939228799031898112.htm" title="Python爬虫实战:研究untangle库相关技术" target="_blank">Python爬虫实战:研究untangle库相关技术</a> <span class="text-muted">ylfhpy</span> <a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">爬虫项目实战</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/php/1.htm">php</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/untangle/1.htm">untangle</a> <div>1.引言在大数据时代,网络数据已成为重要的信息资源。XML和HTML作为互联网上最常用的数据表示格式,广泛应用于API接口、网站结构和数据交换等场景。Python凭借其丰富的爬虫库(如Requests、Scrapy)和灵活的数据处理能力,成为网络数据采集的首选语言。然而,从复杂的XML/HTML文档中提取结构化数据仍然面临诸多挑战,如文档结构多样性、动态内容渲染和数据格式转换等问题。Untangl</div> </li> <li><a href="/article/1939022783023476736.htm" title="Python个人学习基础笔记-3.爬虫(1)" target="_blank">Python个人学习基础笔记-3.爬虫(1)</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%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>一.爬虫的定义爬虫(crawler/spider)是模拟浏览器行为,按照编写规则,自动接收网页信息的工具。通常而言爬虫首先从初始URL集选择URL,向目标网页发起请求,获取网页的HTML源码,然后将获取的数据进行解析过滤,保存我们所需要的标题、内容等,最后提取新的URL加入待爬序列。爬虫常见所需要的库包括Request库、BeautifulSoup4库、Scrapy库和Selenium库等。二.R</div> </li> <li><a href="/article/1938522785018081280.htm" title="python爬虫框架scrapy学习记录" target="_blank">python爬虫框架scrapy学习记录</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/scrapy/1.htm">scrapy</a> <div>一爬虫简介爬虫这种技术听说好多年了,知道它从互联网抓取数据非常厉害,但由于不是专门从事相关工作,了解也就是听听。最近有些空闲,打算实际学习一下,这里做个小小记录。二常用框架介绍通用性框架类型说明scrapy最流行的爬虫框架,功能全面,扩展性强,社区支持完善,适用于中大型爬虫项目pySpider国产爬虫框架,自带web界面,方便监控和管理轻量级框架beautifulSoup+Requests经典的轻</div> </li> <li><a href="/article/1937094765413724160.htm" title="基于Python的智能招聘信息聚合爬虫开发实战:Scrapy+Selenuim+AI解析" target="_blank">基于Python的智能招聘信息聚合爬虫开发实战:Scrapy+Selenuim+AI解析</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</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><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>摘要本文将详细介绍如何使用Python构建一个功能强大的智能招聘信息聚合爬虫系统。我们将结合Scrapy框架、Selenium自动化、反反爬技术、自然语言处理和数据存储等多项技术,实现从多个招聘网站高效抓取、清洗和存储招聘数据。文章包含完整的代码实现和架构设计,适合中高级Python开发者学习现代爬虫开发技术。关键词:Python爬虫、招聘信息聚合、Scrapy、Selenium、反反爬技术、数据</div> </li> <li><a href="/article/1936936309041983488.htm" title="Python爬虫进阶必看!Scrapy框架实战:从架构解析到反爬突破的完整指南" target="_blank">Python爬虫进阶必看!Scrapy框架实战:从架构解析到反爬突破的完整指南</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/scrapy/1.htm">scrapy</a> <div>引言你是否遇到过这样的场景?想爬取豆瓣电影Top250的完整数据(电影名、评分、导演、上映时间),用requests+BeautifulSoup写了200行代码,却被以下问题困扰:手动管理请求队列,并发效率低;频繁请求被封IP,需手动切换代理;数据提取逻辑分散,清洗和存储代码混杂;遇到JS动态加载的页面,无法直接解析。这些问题的解决方案,藏在Python爬虫的“瑞士军刀”——Scrapy框架中。它</div> </li> <li><a href="/article/1936876045034647552.htm" title="基于Python的智能宠物用品信息爬虫实战:Scrapy+Playwright+AI解析" target="_blank">基于Python的智能宠物用品信息爬虫实战:Scrapy+Playwright+AI解析</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</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/scrapy/1.htm">scrapy</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>摘要本文将详细介绍如何使用Python构建一个高效的宠物用品信息爬虫系统,结合Scrapy框架、Playwright无头浏览器和AI解析技术,实现对各大电商平台宠物用品数据的自动化采集与分析。文章包含6000余字的技术解析和完整代码实现,适合中高级Python开发者学习现代爬虫技术。1.爬虫技术选型与架构设计现代网络爬虫面临三大挑战:动态内容加载、反爬虫机制和数据结构化。我们的解决方案采用分层架构</div> </li> <li><a href="/article/1936876045944811520.htm" title="基于Python的智能家电参数爬虫与比对系统开发实战" target="_blank">基于Python的智能家电参数爬虫与比对系统开发实战</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</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><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>摘要本文将详细介绍如何使用Python最新技术栈构建一个高效、智能的家电参数爬取与比对系统。我们将使用异步爬虫框架、机器学习辅助解析、大数据存储等技术,实现从多个电商平台自动采集家电参数,并进行智能比对分析。文章包含完整的代码实现和架构设计,适合中高级Python开发者学习现代爬虫开发的最佳实践。关键词:Python爬虫、异步IO、家电参数比对、Scrapy、Playwright、机器学习解析一、</div> </li> <li><a href="/article/1936856494926524416.htm" title="Python爬虫(六):Scrapy框架" target="_blank">Python爬虫(六):Scrapy框架</a> <span class="text-muted">随机森林404</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/scrapy/1.htm">scrapy</a> <div>"Scrapy到底该怎么学?"今天,我将用这篇万字长文,带你从零开始掌握Scrapy框架的核心用法,并分享我在实际项目中的实战经验!建议收藏⭐!一、Scrapy简介:为什么选择它?1.1ScrapyvsRequests+BeautifulSoup很多新手会问:“我已经会用Requests+BeautifulSoup了,为什么还要学Scrapy?”对比项Requests+BS4Scrapy性能同步请</div> </li> <li><a href="/article/1936829392852414464.htm" title="Python网络爬虫:Scrapy框架的全面解析" target="_blank">Python网络爬虫:Scrapy框架的全面解析</a> <span class="text-muted">4.0啊</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E7%88%AC%E8%99%AB/1.htm">网络爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/ipython/1.htm">ipython</a> <div>Python网络爬虫:Scrapy框架的全面解析一、引言在当今互联网的时代,数据是最重要的资源之一。为了获取这些数据,我们经常需要编写网络爬虫来从各种网站上抓取信息。Python作为一种强大的编程语言,拥有许多用于网络爬虫的工具和库。其中,Scrapy是一个功能强大且灵活的开源网络爬虫框架,它提供了一种高效的方式来爬取网站并提取所需的数据。本文将深入探讨Scrapy框架的核心概念、使用方法以及高级</div> </li> <li><a href="/article/1936826619515695104.htm" title="Python爬虫进阶:Scrapy+Playwright+智能解析高效爬取B站游戏实况视频数据" target="_blank">Python爬虫进阶:Scrapy+Playwright+智能解析高效爬取B站游戏实况视频数据</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/2025%E5%B9%B4%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">2025年爬虫实战项目</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/scrapy/1.htm">scrapy</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E9%9F%B3%E8%A7%86%E9%A2%91/1.htm">音视频</a> <div>摘要本文将深入讲解如何构建一个高性能B站游戏实况视频爬虫系统,涵盖从逆向工程到分布式部署的全流程。项目采用Scrapy框架作为核心,集成Playwright处理动态渲染,使用智能解析技术应对B站反爬机制,结合MongoDB和Elasticsearch构建数据存储与检索系统,最终实现每小时可处理10万+视频数据的专业级采集方案。1.B站数据生态分析1.1游戏区数据价值热门游戏实时监测UP主影响力评估</div> </li> <li><a href="/article/1936646483591884800.htm" title="Python 爬虫实战:英雄联盟赛事数据爬取(Scrapy+Playwright + 多源数据融合)" target="_blank">Python 爬虫实战:英雄联盟赛事数据爬取(Scrapy+Playwright + 多源数据融合)</a> <span class="text-muted">Python核芯</span> <a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/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/scrapy/1.htm">scrapy</a> <div>引言在电竞数据分析领域,英雄联盟(LeagueofLegends)赛事数据具有极高的商业价值。本文将通过一个完整的实战案例,演示如何使用Scrapy框架结合Playwright库,实现多源赛事数据的爬取与融合。项目涵盖动态渲染页面处理、分布式爬虫架构、数据清洗整合等核心技术点,最终构建一个可扩展的电竞数据采集平台。一、技术选型分析1.1为什么选择Scrapy+Playwright组合?Scrapy</div> </li> <li><a href="/article/1936347743807139840.htm" title="Python 爬虫大师课:PlayStation 商店反爬破解(Scrapy + Playwright + AI 图像识别)" target="_blank">Python 爬虫大师课:PlayStation 商店反爬破解(Scrapy + Playwright + AI 图像识别)</a> <span class="text-muted">Python核芯</span> <a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/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/scrapy/1.htm">scrapy</a> <div>引言在数字化浪潮的推动下,游戏产业蓬勃发展,而PlayStation作为全球知名的游戏平台,其商店中蕴含着海量的游戏数据。这些数据对于游戏玩家、游戏开发者以及市场研究者来说都极具价值。然而,PlayStation商店为了保护其数据安全和用户体验,设置了诸多反爬虫机制。今天,就让我们一同探索如何运用Scrapy、Playwright以及AI图像识别技术,巧妙地破解PlayStation商店的反爬机制</div> </li> <li><a href="/article/107.htm" title="web报表工具FineReport常见的数据集报错错误代码和解释" target="_blank">web报表工具FineReport常见的数据集报错错误代码和解释</a> <span class="text-muted">老A不折腾</span> <a class="tag" taget="_blank" href="/search/web%E6%8A%A5%E8%A1%A8/1.htm">web报表</a><a class="tag" taget="_blank" href="/search/finereport/1.htm">finereport</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81/1.htm">代码</a><a class="tag" taget="_blank" href="/search/%E5%8F%AF%E8%A7%86%E5%8C%96%E5%B7%A5%E5%85%B7/1.htm">可视化工具</a> <div>在使用finereport制作报表,若预览发生错误,很多朋友便手忙脚乱不知所措了,其实没什么,只要看懂报错代码和含义,可以很快的排除错误,这里我就分享一下finereport的数据集报错错误代码和解释,如果有说的不准确的地方,也请各位小伙伴纠正一下。   NS-war-remote=错误代码\:1117 压缩部署不支持远程设计 NS_LayerReport_MultiDs=错误代码</div> </li> <li><a href="/article/234.htm" title="Java的WeakReference与WeakHashMap" target="_blank">Java的WeakReference与WeakHashMap</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%B1%E5%BC%95%E7%94%A8/1.htm">弱引用</a> <div>首先看看 WeakReference wiki 上 Weak reference 的一个例子: public class ReferenceTest { public static void main(String[] args) throws InterruptedException { WeakReference r = new Wea</div> </li> <li><a href="/article/361.htm" title="Linux——(hostname)主机名与ip的映射" target="_blank">Linux——(hostname)主机名与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/hostname/1.htm">hostname</a> <div>一、 什么是主机名 无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。域名类型 linuxsir.org 这样的; 主机名是用于什么的呢? 答:在一个局域网中,每台机器都有一个主</div> </li> <li><a href="/article/488.htm" title="oracle 常用技巧" target="_blank">oracle 常用技巧</a> <span class="text-muted">18289753290</span> <div>oracle常用技巧 ①复制表结构和数据   create table  temp_clientloginUser as   select distinct userid from tbusrtloginlog ②仅复制数据 如果表结构一样 insert into  mytable  select  * &nb</div> </li> <li><a href="/article/615.htm" title="使用c3p0数据库连接池时出现com.mchange.v2.resourcepool.TimeoutException" target="_blank">使用c3p0数据库连接池时出现com.mchange.v2.resourcepool.TimeoutException</a> <span class="text-muted">酷的飞上天空</span> <a class="tag" taget="_blank" href="/search/exception/1.htm">exception</a> <div>有一个线上环境使用的是c3p0数据库,为外部提供接口服务。最近访问压力增大后台tomcat的日志里面频繁出现 com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResou</div> </li> <li><a href="/article/742.htm" title="IT系统分析师如何学习大数据" target="_blank">IT系统分析师如何学习大数据</a> <span class="text-muted">蓝儿唯美</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a> <div>我是一名从事大数据项目的IT系统分析师。在深入这个项目前需要了解些什么呢?学习大数据的最佳方法就是先从了解信息系统是如何工作着手,尤其是数据库和基础设施。同样在开始前还需要了解大数据工具,如Cloudera、Hadoop、Spark、Hive、Pig、Flume、Sqoop与Mesos。系 统分析师需要明白如何组织、管理和保护数据。在市面上有几十款数据管理产品可以用于管理数据。你的大数据数据库可能</div> </li> <li><a href="/article/869.htm" title="spring学习——简介" target="_blank">spring学习——简介</a> <span class="text-muted">a-john</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只能由EJB完成的事情。然而Spring的用途不仅限于服务器端的开发,从简单性,可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。其主要特征是依赖注入、AOP、持久化、事务、SpringMVC以及Acegi Security 为了降低Java开发的复杂性,</div> </li> <li><a href="/article/996.htm" title="自定义颜色的xml文件" target="_blank">自定义颜色的xml文件</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a> <div><?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#FFFFFF</color> <color name="black">#000000</color> &</div> </li> <li><a href="/article/1123.htm" title="运营到底是做什么的?" target="_blank">运营到底是做什么的?</a> <span class="text-muted">aoyouzi</span> <a class="tag" taget="_blank" href="/search/%E8%BF%90%E8%90%A5%E5%88%B0%E5%BA%95%E6%98%AF%E5%81%9A%E4%BB%80%E4%B9%88%E7%9A%84%EF%BC%9F/1.htm">运营到底是做什么的?</a> <div>文章来源:夏叔叔(微信号:woshixiashushu),欢迎大家关注!很久没有动笔写点东西,近些日子,由于爱狗团产品上线,不断面试,经常会被问道一个问题。问:爱狗团的运营主要做什么?答:带着用户一起嗨。为什么是带着用户玩起来呢?究竟什么是运营?运营到底是做什么的?那么,我们先来回答一个更简单的问题——互联网公司对运营考核什么?以爱狗团为例,绝大部分的移动互联网公司,对运营部门的考核分为三块——用</div> </li> <li><a href="/article/1250.htm" title="js面向对象类和对象" target="_blank">js面向对象类和对象</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/1.htm">面向对象</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0%E5%88%9B%E5%BB%BA%E7%B1%BB%E5%92%8C%E5%AF%B9%E8%B1%A1/1.htm">函数创建类和对象</a> <div>接触js已经有几个月了,但是对js的面向对象的一些概念根本就是模糊的,js是一种面向对象的语言 但又不像java一样有class,js不是严格的面向对象语言 ,js在java web开发的地位和java不相上下  ,其中web的数据的反馈现在主流的使用json,json的语法和js的类和属性的创建相似   下面介绍一些js的类和对象的创建的技术   一:类和对</div> </li> <li><a href="/article/1377.htm" title="web.xml之资源管理对象配置 resource-env-ref" target="_blank">web.xml之资源管理对象配置 resource-env-ref</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/1.htm">servlet</a> <div>resource-env-ref元素来指定对管理对象的servlet引用的声明,该对象与servlet环境中的资源相关联 <resource-env-ref> <resource-env-ref-name>资源名</resource-env-ref-name> <resource-env-ref-type>查找资源时返回的资源类</div> </li> <li><a href="/article/1504.htm" title="Create a composite component with a custom namespace" target="_blank">Create a composite component with a custom namespace</a> <span class="text-muted">sunjing</span> <div>https://weblogs.java.net/blog/mriem/archive/2013/11/22/jsf-tip-45-create-composite-component-custom-namespace   When you developed a composite component the namespace you would be seeing would </div> </li> <li><a href="/article/1631.htm" title="【MongoDB学习笔记十二】Mongo副本集服务器角色之Arbiter" target="_blank">【MongoDB学习笔记十二】Mongo副本集服务器角色之Arbiter</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div> 一、复本集为什么要加入Arbiter这个角色 回答这个问题,要从复本集的存活条件和Aribter服务器的特性两方面来说。 什么是Artiber? An arbiter does not have a copy of data set and cannot become a primary. Replica sets may have arbiters to add a </div> </li> <li><a href="/article/1758.htm" title="Javascript开发笔记" target="_blank">Javascript开发笔记</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div> 获取iframe内的元素 通常我们使用window.frames["frameId"].document.getElementById("divId").innerHTML这样的形式来获取iframe内的元素,这种写法在IE、safari、chrome下都是通过的,唯独在fireforx下不通过。其实jquery的contents方法提供了对if</div> </li> <li><a href="/article/1885.htm" title="Web浏览器Chrome打开一段时间后,运行alert无效" target="_blank">Web浏览器Chrome打开一段时间后,运行alert无效</a> <span class="text-muted">bozch</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/chorme/1.htm">chorme</a><a class="tag" taget="_blank" href="/search/alert/1.htm">alert</a><a class="tag" taget="_blank" href="/search/%E6%97%A0%E6%95%88/1.htm">无效</a> <div>今天在开发的时候,突然间发现alert在chrome浏览器就没法弹出了,很是怪异。 试了试其他浏览器,发现都是没有问题的。 开始想以为是chorme浏览器有啥机制导致的,就开始尝试各种代码让alert出来。尝试结果是仍然没有显示出来。 这样开发的结果,如果客户在使用的时候没有提示,那会带来致命的体验。哎,没啥办法了 就关闭浏览器重启。   结果就好了,这也太怪异了。难道是cho</div> </li> <li><a href="/article/2012.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.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; public class GraphColoringProblem { /**编程之美 高效地安排会议 图着色问题 贪心算法 * 假设要用很多个教室对一组</div> </li> <li><a href="/article/2139.htm" title="机器学习相关概念和开发工具" target="_blank">机器学习相关概念和开发工具</a> <span class="text-muted">chenbowen00</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/matlab/1.htm">matlab</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a> <div>基本概念: 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。 它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。 开发工具 M</div> </li> <li><a href="/article/2266.htm" title="[宇宙经济学]关于在太空建立永久定居点的可能性" target="_blank">[宇宙经济学]关于在太空建立永久定居点的可能性</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E7%BB%8F%E6%B5%8E/1.htm">经济</a> <div>        大家都知道,地球上的房地产都比较昂贵,而且土地证经常会因为新的政府的意志而变幻文本格式........        所以,在地球议会尚不具有在太空行使法律和权力的力量之前,我们外太阳系统的友好联盟可以考虑在地月系的某些引力平衡点上面,修建规模较大的定居点</div> </li> <li><a href="/article/2393.htm" title="oracle 11g database control 证书错误" target="_blank">oracle 11g database control 证书错误</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/%E8%AF%81%E4%B9%A6%E9%94%99%E8%AF%AF/1.htm">证书错误</a><a class="tag" taget="_blank" href="/search/oracle+11G+%E5%AE%89%E8%A3%85/1.htm">oracle 11G 安装</a> <div>oracle 11g database control 证书错误  win7 安装完oracle11后打开 Database control 后,会打开em管理页面,提示证书错误,点“继续浏览此网站”,还是会继续停留在证书错误页面 解决办法: 是 KB2661254 这个更新补丁引起的,它限制了 RSA 密钥位长度少于 1024 位的证书的使用。具体可以看微软官方公告:</div> </li> <li><a href="/article/2520.htm" title="Java I/O之用FilenameFilter实现根据文件扩展名删除文件" target="_blank">Java I/O之用FilenameFilter实现根据文件扩展名删除文件</a> <span class="text-muted">游其是你</span> <a class="tag" taget="_blank" href="/search/FilenameFilter/1.htm">FilenameFilter</a> <div>在Java中,你可以通过实现FilenameFilter类并重写accept(File dir, String name) 方法实现文件过滤功能。 在这个例子中,我们向你展示在“c:\\folder”路径下列出所有“.txt”格式的文件并删除。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 </div> </li> <li><a href="/article/2647.htm" title="C语言数组的简单以及一维数组的简单排序算法示例,二维数组简单示例" target="_blank">C语言数组的简单以及一维数组的简单排序算法示例,二维数组简单示例</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/array/1.htm">array</a> <div># include <stdio.h> int main(void) { int a[5] = {1, 2, 3, 4, 5}; //a 是数组的名字 5是表示数组元素的个数,并且这五个元素分别用a[0], a[1]...a[4] int i; for (i=0; i<5; ++i) printf("%d\n",</div> </li> <li><a href="/article/2774.htm" title="PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键。 就是 唯一 且 不能为空。 INDEX 索引,普通的 UNIQUE 唯一索引" target="_blank">PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键。 就是 唯一 且 不能为空。 INDEX 索引,普通的 UNIQUE 唯一索引</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/primary/1.htm">primary</a> <div>PRIMARY, INDEX, UNIQUE 这3种是一类PRIMARY 主键。 就是 唯一 且 不能为空。INDEX 索引,普通的UNIQUE 唯一索引。 不允许有重复。FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。举个例子来说,比如你在为某商场做一个会员卡的系统。这个系统有一个会员表有下列字段:会员编号   INT会员姓名  </div> </li> <li><a href="/article/2901.htm" title="java集合辅助类 Collections、Arrays" target="_blank">java集合辅助类 Collections、Arrays</a> <span class="text-muted">shuizhaosi888</span> <a class="tag" taget="_blank" href="/search/Collections/1.htm">Collections</a><a class="tag" taget="_blank" href="/search/Arrays/1.htm">Arrays</a><a class="tag" taget="_blank" href="/search/HashCode/1.htm">HashCode</a> <div>  Arrays、Collections   1 )数组集合之间转换 public static <T> List<T> asList(T... a) { return new ArrayList<>(a); }      a)Arrays.asL</div> </li> <li><a href="/article/3028.htm" title="Spring Security(10)——退出登录logout" target="_blank">Spring Security(10)——退出登录logout</a> <span class="text-muted">234390216</span> <a class="tag" taget="_blank" href="/search/logout/1.htm">logout</a><a class="tag" taget="_blank" href="/search/Spring+Security/1.htm">Spring Security</a><a class="tag" taget="_blank" href="/search/%E9%80%80%E5%87%BA%E7%99%BB%E5%BD%95/1.htm">退出登录</a><a class="tag" taget="_blank" href="/search/logout-url/1.htm">logout-url</a><a class="tag" taget="_blank" href="/search/LogoutFilter/1.htm">LogoutFilter</a> <div>       要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。当我们指定了http元素的auto-config属性为true时logout定义是会自动配置的,此时我们默认退出登录的URL为“/j_spring_secu</div> </li> <li><a href="/article/3155.htm" title="透过源码学前端 之 Backbone 三 Model" target="_blank">透过源码学前端 之 Backbone 三 Model</a> <span class="text-muted">逐行分析JS源代码</span> <a class="tag" taget="_blank" href="/search/backbone/1.htm">backbone</a><a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/1.htm">源码分析</a><a class="tag" taget="_blank" href="/search/js%E5%AD%A6%E4%B9%A0/1.htm">js学习</a> <div>Backbone 分析第三部分  Model 概述: Model 提供了数据存储,将数据以JSON的形式保存在 Model的 attributes里, 但重点功能在于其提供了一套功能强大,使用简单的存、取、删、改数据方法,并在不同的操作里加了相应的监听事件, 如每次修改添加里都会触发 change,这在据模型变动来修改视图时很常用,并且与collection建立了关联。 </div> </li> <li><a href="/article/3282.htm" title="SpringMVC源码总结(七)mvc:annotation-driven中的HttpMessageConverter" target="_blank">SpringMVC源码总结(七)mvc:annotation-driven中的HttpMessageConverter</a> <span class="text-muted">乒乓狂魔</span> <a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a> <div>这一篇文章主要介绍下HttpMessageConverter整个注册过程包含自定义的HttpMessageConverter,然后对一些HttpMessageConverter进行具体介绍。 HttpMessageConverter接口介绍: public interface HttpMessageConverter<T> { /** * Indicate</div> </li> <li><a href="/article/3409.htm" title="分布式基础知识和算法理论" target="_blank">分布式基础知识和算法理论</a> <span class="text-muted">bluky999</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/zookeeper/1.htm">zookeeper</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/%E4%B8%80%E8%87%B4%E6%80%A7%E5%93%88%E5%B8%8C/1.htm">一致性哈希</a><a class="tag" taget="_blank" href="/search/paxos/1.htm">paxos</a> <div>  分布式基础知识和算法理论 BY NODEXY@2014.8.12 本文永久链接:http://nodex.iteye.com/blog/2103218   在大数据的背景下,不管是做存储,做搜索,做数据分析,或者做产品或服务本身,面向互联网和移动互联网用户,已经不可避免地要面对分布式环境。笔者在此收录一些分布式相关的基础知识和算法理论介绍,在完善自我知识体系的同</div> </li> <li><a href="/article/3536.htm" title="Android Studio的.gitignore以及gitignore无效的解决" target="_blank">Android Studio的.gitignore以及gitignore无效的解决</a> <span class="text-muted">bell0901</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/gitignore/1.htm">gitignore</a> <div>  github上.gitignore模板合集,里面有各种.gitignore : https://github.com/github/gitignore   自己用的Android Studio下项目的.gitignore文件,对github上的android.gitignore添加了       # OSX files      //mac os下      .DS_Store </div> </li> <li><a href="/article/3663.htm" title="成为高级程序员的10个步骤" target="_blank">成为高级程序员的10个步骤</a> <span class="text-muted">tomcat_oracle</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a> <div>What 软件工程师的职业生涯要历经以下几个阶段:初级、中级,最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师。   Why 得到更多的报酬!因为你的薪水会随着你水平的提高而增加 提升你的职业生涯。成为了高级软件工程师之后,就可以朝着架构师、团队负责人、CTO 等职位前进 历经更大的挑战。随着你的成长,各种影响力也会提高。 </div> </li> <li><a href="/article/3790.htm" title="mongdb在linux下的安装" target="_blank">mongdb在linux下的安装</a> <span class="text-muted">xtuhcy</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>一、查询linux版本号: lsb_release -a  LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noa</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>