mac 环境下 Scrapy 入门

文章目录

    • 安装
    • 步骤
      • 新建爬虫项目 - scrapy startproject
      • 明确数据目标 - disease/items.py
      • 制作网页爬虫 - spiders/MedicaldataSpider.py
          • 创建爬虫
          • 配置爬虫
          • 取数据
          • 提取其他信息
          • 保存数据


安装

sudo pip install scrapy

python3环境配置


步骤

  • 新建爬虫项目 (scrapy startproject name)
  • 明确数据目标 (编写 items.py)
  • 制作网页爬虫 (spiders/xxspider.py)
  • 存储爬取内容 (pipelines.py)

新建爬虫项目 - scrapy startproject

终端进入项目目录

scrapy startproject spiderName
spiderName - 项目名称

系统创建一个 spiderName 文件夹,目录结构:

spiderName/
    scrapy.cfg                项目配置文件
    spiderName/               Python模块 - 从这里引用代码
        __init__.py
        items.py              目标文件
        pipelines.py
        settings.py           设置文件
        spiders/              存储爬虫代码目录
            __init__.py
            ...

明确数据目标 - disease/items.py

目标:抓取 http://yao.xywy.com/class/4-0-0-1-0-1.htm 网站里的药品的名称、生产公司和功能主治

打开 disease 目录下的 items.py

  • Item 定义结构化数据字段,用来保存爬取到的数据
    scrapy.Item 创建一个类
    scrapy.Field 定义类型类属性

创建一个 MedicaldataItem 类,构建 item 模型

import scrapy

class MedicaldataItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    name = scrapy.Field()  # 药品名称
    company = scrapy.Field()  # 生产公司
    function = scrapy.Field()  # 功能主治
    


制作网页爬虫 - spiders/MedicaldataSpider.py

爬虫功能 : 爬 => 取


创建爬虫

创建一个名为Medicaldata的爬虫,并指定爬取域的范围:
cd disease

scrapy genspider Medicaldata "http://yao.xywy.com"

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

import scrapy

class MedicaldataSpider(scrapy.Spider):
    name = 'Medicaldata'
    allowed_domains = ['yao.xywy.com']
    start_urls = ['http://yao.xywy.com']

    def parse(self, response):
        pass

用scrapy.Spider类创建一个子类来建立一个Spider,其下有三个强制的属性 和 一个方法。

  • name = “”
    爬虫的唯一识别名称

  • allow_domains = []
    搜索的域名范围
    规定爬虫只爬取这个域名下的网页,不存在的URL会被忽略。

  • start_urls = ()
    爬取起始URL
    爬虫从这里开始抓取数据,所以,第一次下载的数据将会从这些urls开始。其他子URL将会从这些元祖URL中继承性生成。

  • parse(self, response)
    解析的方法
    URL传回Response对象作为唯一参数,用来

    1. 解析返回的网页数据(response.body)
    2. 提取结构化数据(生成item)
    3. 生成需要下一页的URL请求。


配置爬虫

将start_urls的值修改为需要爬取的第一个url

start_urls = ['http://yao.xywy.com/class/4-0-0-1-0-1.htm']

修改parse()方法

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

原文为 open(filename, ‘w’).write(response.body)
报错
TypeError: write() argument must be str, not bytes
python3 w为写字符,wb为二进制

参考:https://blog.csdn.net/kingyuan666/article/details/81214954

在disease目录下执行:
scrapy crawl Medicaldata

[scrapy] INFO: Spider closed (finished) 执行完成
drug.html 中为爬取网页的源代码



取数据

爬取整个网页完毕,接下来进行取数据

获取 xpath 地址
利用 Chrome
右键 => 检查 => copy => copy xpath

mac 环境下 Scrapy 入门_第1张图片
xpath:
/html/body/div[6]/div[2]/div[1]/a

XPath 表达式简例

/html/head/title: 选择HTML文档中  标签内的  元素
/html/head/title/text(): 选择上面提到的 <title> 元素的文字
//td: 选择所有的 <td> 元素
//div[@class="mine"]: 选择所有具有 class="mine" 属性的 div 元素
</code></pre> 
  <p>举例 - 读取网站 http://yao.xywy.com/ 的网站标题,</p> 
  <p>Medicaldata.py 文件代码如下:</p> 
  <pre><code class="prism language-py"><span class="token keyword">import</span> scrapy

<span class="token keyword">class</span> <span class="token class-name">MedicaldataSpider</span><span class="token punctuation">(</span>scrapy<span class="token punctuation">.</span>Spider<span class="token punctuation">)</span><span class="token punctuation">:</span>
    name <span class="token operator">=</span> <span class="token string">'Medicaldata'</span>
    allowed_domains <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'yao.xywy.com'</span><span class="token punctuation">]</span>
    start_urls <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">'http://yao.xywy.com/class/4-0-0-1-0-1.htm'</span><span class="token punctuation">]</span>

    <span class="token keyword">def</span> <span class="token function">parse</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> response<span class="token punctuation">)</span><span class="token punctuation">:</span>
        <span class="token comment"># 获取网站标题</span>
        context <span class="token operator">=</span> response<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'/html/head/title/text()'</span><span class="token punctuation">)</span>
        
        <span class="token comment"># 提取网站标题</span>
        title <span class="token operator">=</span> context<span class="token punctuation">.</span>extract_first<span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token keyword">print</span><span class="token punctuation">(</span>title<span class="token punctuation">)</span>
        <span class="token keyword">pass</span>
</code></pre> 
  <p>执行以下命令:</p> 
  <p><code>scrapy crawl Medicaldata</code><br> …<br> …<br> 中西药品_寻医问药药品网<br> …<br> …</p> 
  <br> 
  <hr> 
  <h5>提取其他信息</h5> 
  <p>引入在 disease/items.py 里定义的 MedicaldataItem 类<br> 然后将得到的数据封装到一个 MedicaldataItem 对象中</p> 
  <blockquote> 
   <p>注意缩进</p> 
  </blockquote> 
  <pre><code class="prism language-py"><span class="token keyword">from</span> disease<span class="token punctuation">.</span>items <span class="token keyword">import</span> MedicaldataItem

<span class="token keyword">def</span> <span class="token function">parse</span><span class="token punctuation">(</span>self<span class="token punctuation">,</span> response<span class="token punctuation">)</span><span class="token punctuation">:</span>
        
        <span class="token comment"># 存放疾病信息的集合</span>
        items <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
        
        <span class="token keyword">for</span> each <span class="token keyword">in</span> response<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'//div[@class="h-drugs-item"]'</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
            <span class="token comment"># 将我们得到的数据封装到一个 `ItcastItem` 对象</span>
            item <span class="token operator">=</span> MedicaldataItem<span class="token punctuation">(</span><span class="token punctuation">)</span>
            <span class="token comment">#extract()方法返回的都是unicode字符串</span>
            name <span class="token operator">=</span> each<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'div/a/@target'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>extract<span class="token punctuation">(</span><span class="token punctuation">)</span>
            company <span class="token operator">=</span> each<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'div/span/text()'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>extract<span class="token punctuation">(</span><span class="token punctuation">)</span>
            function <span class="token operator">=</span> each<span class="token punctuation">.</span>xpath<span class="token punctuation">(</span><span class="token string">'div[2]/div[2]/div[2]/text()'</span><span class="token punctuation">)</span><span class="token punctuation">.</span>extract<span class="token punctuation">(</span><span class="token punctuation">)</span>
            
            <span class="token comment">#xpath返回的是包含一个元素的列表</span>
            item<span class="token punctuation">[</span><span class="token string">'name'</span><span class="token punctuation">]</span> <span class="token operator">=</span> name<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>
            item<span class="token punctuation">[</span><span class="token string">'company'</span><span class="token punctuation">]</span> <span class="token operator">=</span> company<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>
            item<span class="token punctuation">[</span><span class="token string">'function'</span><span class="token punctuation">]</span> <span class="token operator">=</span> function<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>
            
            items<span class="token punctuation">.</span>append<span class="token punctuation">(</span>item<span class="token punctuation">)</span>

        <span class="token comment"># 直接返回最后数据</span>
        <span class="token keyword">return</span> items

</code></pre> 
  <br> 
  <hr> 
  <h5>保存数据</h5> 
  <p>-o 输出指定格式的文件,命令如下:</p> 
  <ul> 
   <li> <p>json 格式<br> <code>scrapy crawl Medicaldata -o drug.json</code></p> </li> 
   <li> <p>json lines格式,默认为Unicode编码<br> <code>scrapy crawl Medicaldata -o drug.json</code></p> </li> 
   <li> <p>csv 逗号表达式,可用Excel打开<br> <code>scrapy crawl Medicaldata -o drug.csv</code></p> </li> 
   <li> <p>xml格式<br> <code>scrapy crawl Medicaldata -o drug.xml</code></p> </li> 
  </ul> 
  <p>ERROR<br> scrapy 爬虫返回 json格式内容为 unicode 编码<br> <a href="http://img.e-com-net.com/image/info8/a45e30ce5b584cf6b709db09ae2cdebb.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/a45e30ce5b584cf6b709db09ae2cdebb.jpg" alt="mac 环境下 Scrapy 入门_第2张图片" width="650" height="178" style="border:1px solid black;"></a><br> <em>解决方案</em><br> 在settings.py文件中增加一行,导出时强制为’utf-8’即可转换为中文<br> <code>FEED_EXPORT_ENCODING = 'utf-8'</code><br> http://www.cnblogs.com/mrtop/p/10185507.html</p> 
  <p>爬取数据成功:<br> <a href="http://img.e-com-net.com/image/info8/43539fa8b6984dbea4f006bba8b423e5.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/43539fa8b6984dbea4f006bba8b423e5.jpg" alt="mac 环境下 Scrapy 入门_第3张图片" width="650" height="186" style="border:1px solid black;"></a></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1306301449814183936"></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,mac)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1950188184285540352.htm"
                           title="Mac OSX 下的mysql数据库文件存放位置" target="_blank">Mac OSX 下的mysql数据库文件存放位置</a>
                        <span class="text-muted">Bruuuces</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a><a class="tag" taget="_blank" href="/search/osx/1.htm">osx</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E7%BD%AE/1.htm">位置</a><a class="tag" taget="_blank" href="/search/%E5%AD%98%E6%94%BE/1.htm">存放</a>
                        <div>之前我的mysql的系统数据库里的表被我玩坏了,万般无奈之下只得删除所有mysql的东西重新构建数据库。按照网上搜到的内容删除后重装发现数据库没有什么变化。于是自己在每个可能存放数据库文件的目录查找,最终确认目录位置如下:使用HomeBrew安装为/usr/local/var/mysql使用官方下载的dmg镜像安装为/usr/local/mysql删除这个目录再重新安装mysql就会重新生成系统数</div>
                    </li>
                    <li><a href="/article/1950187733427220480.htm"
                           title="2018年中南大学中英翻译" target="_blank">2018年中南大学中英翻译</a>
                        <span class="text-muted">某翁</span>

                        <div>参考:20180827235856533.jpg【1】机器学习理论表明,机器学习算法能从有限个训练集样本上得到较好的泛化【1】Machinelearningtheoryshowsthatmachinelearningalgorithmcangeneralizewellfromfinitetrainingsetsampleslimited有限的infinite无限的【2】这似乎违背了一些基本的逻辑准</div>
                    </li>
                    <li><a href="/article/1950185411020124160.htm"
                           title="mac os 10.9 mysql_MAC OSX 10.9 apache php mysql 环境配置" target="_blank">mac os 10.9 mysql_MAC OSX 10.9 apache php mysql 环境配置</a>
                        <span class="text-muted">AY05</span>
<a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a><a class="tag" taget="_blank" href="/search/os/1.htm">os</a><a class="tag" taget="_blank" href="/search/10.9/1.htm">10.9</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                        <div>#终端内运行sudoapachectlstart#启动Apachesudoapachectlrestart#重启Apachesudoapachectlstop#停止Apache#配置Apachesudovi/private/etc/apache2/httpd.conf#将里面的这一行去掉前面的##LoadModulephp5_modulelibexec/apache2/libphp5.so#配置P</div>
                    </li>
                    <li><a href="/article/1950185032945561600.htm"
                           title="mac升级mysql_Mac OSX下的MySQL数据库升级" target="_blank">mac升级mysql_Mac OSX下的MySQL数据库升级</a>
                        <span class="text-muted">weixin_39801714</span>
<a class="tag" taget="_blank" href="/search/mac%E5%8D%87%E7%BA%A7mysql/1.htm">mac升级mysql</a>
                        <div>MacOSX下的数据库升级最麻烦的不过权限的问题.本文的MySQL的安装方式为OSX下DMG磁盘镜像的安装方式,MacPorts/Homebrew的方式大同小异.从5.6.17升级到5.7.18安装目录信息ls-al/usr/local|grepmysqllrwxr-xr-x1rootwheel30B52100:39mysql@->mysql-5.6.17-osx10.7-x86_64drwxr-</div>
                    </li>
                    <li><a href="/article/1950183520588591104.htm"
                           title="搭建云手机教程" target="_blank">搭建云手机教程</a>
                        <span class="text-muted">云博客-资源宝</span>
<a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E6%89%8B%E6%9C%BA/1.htm">智能手机</a>
                        <div>搭建云手机教程本教程由分享:ziyouhua资源宝整理分享:www.httple.net首先检查自己vps是否支持这个项目sudoaptinstallcpu-checkerkvm-ok如果显示INFO:/dev/kvmexistsKVMaccelerationcanbeused表示支持,可以继续往下看ac13首先安装dockercurl-fsSLhttps://get.docker.com|sud</div>
                    </li>
                    <li><a href="/article/1950176209035915264.htm"
                           title="Charles 配置 https" target="_blank">Charles 配置 https</a>
                        <span class="text-muted">Monkey_猿</span>
<a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/Charles/1.htm">Charles</a><a class="tag" taget="_blank" href="/search/%E9%85%8D%E7%BD%AE/1.htm">配置</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a>
                        <div>Charles一.Iphone(MAC版;win可参照使用):首先,对Charles进行配置:菜单:Proxy->ProxySettings...->勾选EnabletransparentHTTPproxyingProxy->ProxySettings然后找到电脑的局域网IP地址:这里自己去找吧接着,打开你的iPhone:设置->Wifi->连接上和电脑同一路由器的Wifi,点击右边的i进入配置配</div>
                    </li>
                    <li><a href="/article/1950175199089455104.htm"
                           title="PDF转Markdown - Python 实现方案与代码" target="_blank">PDF转Markdown - Python 实现方案与代码</a>
                        <span class="text-muted">Eiceblue</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/PDF/1.htm">PDF</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</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><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a>
                        <div>PDF作为广泛使用的文档格式,转换为轻量级标记语言Markdown后,可无缝集成到技术文档、博客平台和版本控制系统中,提高内容的可编辑性和可访问性。本文将详细介绍如何使用国产Spire.PDFforPython库将PDF文档转换为Markdown格式。技术优势:精准保留原始文档结构(段落/列表/表格)完整提取文本和图像内容无需Adobe依赖的纯Python实现支持Linux/Windows/mac</div>
                    </li>
                    <li><a href="/article/1950172082432176128.htm"
                           title="苹果第二代基于ARM处理器的M1X发行日期和功能" target="_blank">苹果第二代基于ARM处理器的M1X发行日期和功能</a>
                        <span class="text-muted">点点凌阁</span>

                        <div>人们普遍认为是下一代苹果Mac处理器的基准已经出现。预计M1X将跟随2020年11月推出的M1,并在MacBookPro和iMac的下一版本中使用。这是苹果M1芯片后继产品的全部信息。什么是M1X?M1X芯片被认为是下一代AppleSilicon的名称。这将是苹果第二款针对Mac的基于ARM的处理器。苹果似乎并没有直接跳到M2,而是计划推出具有更多处理器核心和更多图形核心的相同基本处理器的更快版本</div>
                    </li>
                    <li><a href="/article/1950170537007312896.htm"
                           title=".net平台的跨平台桌面应用开发的技术方案总结对比" target="_blank">.net平台的跨平台桌面应用开发的技术方案总结对比</a>
                        <span class="text-muted">yuanpan</span>
<a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a>
                        <div>目前,.NET平台提供了多种跨平台桌面应用开发的技术方案,主要包括.NETMAUI、AvaloniaUI、UnoPlatform、Eto.Forms等。以下是它们的核心特点及优缺点对比:1..NETMAUI(.NETMulti-platformAppUI)支持平台:Windows、macOS、iOS、Android核心特点:微软官方维护,继承自Xamarin.Forms,支持XAML和C#开发。提</div>
                    </li>
                    <li><a href="/article/1950169523193704448.htm"
                           title="Claude Code 超详细完整指南(2025最新版)" target="_blank">Claude Code 超详细完整指南(2025最新版)</a>
                        <span class="text-muted">笙囧同学</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>终端AI编程助手|高频使用点+生态工具+完整命令参考+最新MCP配置目录快速开始(5分钟上手)详细安装指南系统要求Windows安装(WSL方案)macOS安装Linux安装安装验证配置与认证首次认证环境变量配置代理配置⚡基础命令详解启动命令会话管理文件操作Think模式完全指南MCP服务器配置详解MCP基础概念添加MCP服务器10个必备MCP服务器MCP故障排除记忆系统详解高级使用技巧成本控制策</div>
                    </li>
                    <li><a href="/article/1950163093577330688.htm"
                           title="Linux中Samba服务器安装与配置文件" target="_blank">Linux中Samba服务器安装与配置文件</a>
                        <span class="text-muted">長樂.-</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>Samba简述27zkqsamba是一个基于TCP/IP协议的开源软件套件,可以在Linux、Windows、macOS等操作系统上运行。它允许不同操作系统的计算机之间实现文件和打印机共享。samba提供了一个服务,使得Windows操作系统可以像访问本地文件一样访问Linux、Mac等操作系统上的共享文件。实现跨平台的文件共享,提高办公环境的效率和便利性。samba也支持Windows网络邻居协</div>
                    </li>
                    <li><a href="/article/1950152503563710464.htm"
                           title="如何在 Ubuntu 24.04 或 22.04 Linux 上安装和使用 NoMachine" target="_blank">如何在 Ubuntu 24.04 或 22.04 Linux 上安装和使用 NoMachine</a>
                        <span class="text-muted">山岚的运维笔记</span>
<a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4%E5%8F%8A%E4%BD%BF%E7%94%A8/1.htm">运维及使用</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/nomachine/1.htm">nomachine</a><a class="tag" taget="_blank" href="/search/%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5/1.htm">远程连接</a>
                        <div>NoMachine是一款适用于Linux(Ubuntu)及其他支持的操作系统的远程桌面应用程序,允许用户通过本地或远程系统从世界任何地方控制计算机。它可以在低带宽连接下工作,被专业人士和家庭用户广泛使用。NoMachine的主要功能高性能远程访问跨平台兼容性易于使用,因为用户界面友好提供强大的加密协议,如SSH、SSL及其他安全标准支持远程文件传输和打印服务允许从远程计算机进行音频和视频流媒体传输</div>
                    </li>
                    <li><a href="/article/1950121240370933760.htm"
                           title="群晖 File Station:集中浏览与管理 NAS 文件的工具" target="_blank">群晖 File Station:集中浏览与管理 NAS 文件的工具</a>
                        <span class="text-muted">Trihawk宇麦科技</span>
<a class="tag" taget="_blank" href="/search/%E7%BE%A4%E6%99%96NAS/1.htm">群晖NAS</a>
                        <div>FileStation是SynologyDSM(DiskStationManager)操作系统中的核心内建应用,以网页形式提供友好的图形界面,供用户在浏览器中管理NAS上的文件和共享资料核心功能特色1.文件浏览与管理Navigate文件夹、执行拖放上传、剪贴、重命名、移动、删除等常用操作,类似WindowsExplorer或macOSFinder的使用体验,直观且便捷支持批量操作、压缩与解压、多文</div>
                    </li>
                    <li><a href="/article/1950116322616602624.htm"
                           title="macOS 安装全攻略:从基础到企业级部署" target="_blank">macOS 安装全攻略:从基础到企业级部署</a>
                        <span class="text-muted">zqmgx13291</span>
<a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a>
                        <div>引言:macOS安装的技术全景与价值macOS作为苹果生态的核心组件,其安装场景涵盖个人用户的系统重装、开发者的多系统环境搭建、企业级设备的批量部署等。据Apple官方数据,2024年全球活跃Mac设备超2亿台,其中AppleSilicon芯片机型占比达68%,架构差异(ARMvsx86)导致安装流程存在显著区别。本文将系统梳理macOS安装的全流程,从基础的单系统重装到复杂的双系统配置、硬件升级</div>
                    </li>
                    <li><a href="/article/1950100058422702080.htm"
                           title="从0到1学PHP(一):PHP 基础入门:开启后端开发之旅" target="_blank">从0到1学PHP(一):PHP 基础入门:开启后端开发之旅</a>
                        <span class="text-muted"></span>

                        <div>目录一、PHP简介与发展历程1.1PHP定义与特点1.2在后端开发中的地位1.3发展阶段及重要版本更新二、PHP开发环境搭建2.1Windows系统下搭建步骤2.2Mac系统下搭建方法及常用工具2.3适合初学者的集成开发环境三、第一个PHP程序3.1编写"HelloWorld"程序3.2程序基本结构和执行过程3.3PHP代码的嵌入方式(在HTML中)一、PHP简介与发展历程1.1PHP定义与特点P</div>
                    </li>
                    <li><a href="/article/1950095018312134656.htm"
                           title="Mac安装navicat17版本教程mac下载Navicat Premium for Mac v17.1.9【好用】" target="_blank">Mac安装navicat17版本教程mac下载Navicat Premium for Mac v17.1.9【好用】</a>
                        <span class="text-muted">光头才能变强</span>
<a class="tag" taget="_blank" href="/search/Mac%E8%BD%AF%E4%BB%B6/1.htm">Mac软件</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a><a class="tag" taget="_blank" href="/search/navicat/1.htm">navicat</a>
                        <div>Mac安装NavicatPremiumforMacv17.1.9【亲测】安装提示“已损坏无法打开,你应该将它移到废纸篓!”肯定还有朋友走完上面流程还是不行安装包获取今天给大家分享下Mac系统安装navicat17.1.9版本,文末下载安装包!亲测好用,旧版本的还保存不了密码,这个版本很稳定!安装直接双击打开下载的安装包左侧应用拖入右侧文件夹提示“已损坏无法打开,你应该将它移到废纸篓!”别慌,接着往</div>
                    </li>
                    <li><a href="/article/1950089975940837376.htm"
                           title="4.ESP32-按键实验" target="_blank">4.ESP32-按键实验</a>
                        <span class="text-muted">老蒋精髓</span>
<a class="tag" taget="_blank" href="/search/microPython/1.htm">microPython</a><a class="tag" taget="_blank" href="/search/4.ESP32/1.htm">4.ESP32</a>
                        <div>4.ESP32-按键实验"""按键实验2022.10.9"""frommachineimportPinimporttimekey1=Pin(4,Pin.IN,Pin.PULL_UP)#GPIO2,设置为输出模式,输入模式为Pin.IN,设置为上拉key2=Pin(5,Pin.IN,Pin.PULL_UP</div>
                    </li>
                    <li><a href="/article/1950088840886677504.htm"
                           title="Linux文件权限与进程管理解析" target="_blank">Linux文件权限与进程管理解析</a>
                        <span class="text-muted">雨季西柚</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>控制对文件的访问1。什么是文件系统权限?它是如何工作的?如何查看文件的权限?答:文件系统权限就是规定谁能对文件/文件夹做什么(比如看、改、删)的规则。简单说,就是分"所有者、所属组、其他人"三类,给每类分配"读、写、执行"三种权限。操作时系统先看你属于哪类,再查有没有对应权限,有就允许,没有就拦着。查看方式:Linux/mac:终端输ls-l文件名,看开头的rwxr--r--这类字符(3个一组,对</div>
                    </li>
                    <li><a href="/article/1950087581450432512.htm"
                           title="Navicat Premium for Mac 17.1.10 版本重置方案解析" target="_blank">Navicat Premium for Mac 17.1.10 版本重置方案解析</a>
                        <span class="text-muted">岑铭恩</span>

                        <div>NavicatPremiumforMac17.1.10版本重置方案解析背景介绍NavicatPremium是一款广受欢迎的数据库管理工具,其Mac版本在17.1.10版本中采用了新的授权验证机制。许多用户在试用期结束后需要重置试用期,但发现传统的重置方法不再适用。本文将深入分析该版本的重置原理和具体操作方案。技术原理分析NavicatPremium17.1.10forMac版本将授权信息存储在用户</div>
                    </li>
                    <li><a href="/article/1950087454740508672.htm"
                           title="MAC包头、IP包头 、UDP包头中的长度含义是啥?三者之间有啥区别?" target="_blank">MAC包头、IP包头 、UDP包头中的长度含义是啥?三者之间有啥区别?</a>
                        <span class="text-muted"></span>

                        <div>以太网帧、IP包及TCP与UDP的报文格式下面用通俗+技术的方式详细解释:1.MAC包头(以太网帧头)中的长度字段名称:EtherType/Length位置:以太网帧头的第13、14字节含义:如果值小于等于1500(0x05DC),表示数据部分的长度(即MAC帧中数据字段的字节数,不包括MAC头和FCS)。如果值大于等于1536(0x0600),表示上层协议类型(如0x0800表示IPv4,0x0</div>
                    </li>
                    <li><a href="/article/1950032200917381120.htm"
                           title="【MAC 上学习 C++】Day 55-1. 实验11-2-2 学生成绩链表处理 (20 分)" target="_blank">【MAC 上学习 C++】Day 55-1. 实验11-2-2 学生成绩链表处理 (20 分)</a>
                        <span class="text-muted">RaRasa</span>

                        <div>实验11-2-2学生成绩链表处理(20分)1.题目摘自https://pintia.cn/problem-sets/13/problems/6022.题目内容本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。函数接口定义:structstud_node*createlist();structstud_node*deletelist(struc</div>
                    </li>
                    <li><a href="/article/1950030347316031488.htm"
                           title="2x002 MacOS X里的Python环境变量设置" target="_blank">2x002 MacOS X里的Python环境变量设置</a>
                        <span class="text-muted"></span>

                        <div>2x002MacOSX里的Python环境变量设置MacOSX里的Python环境变量设置略说:SHELL类型环境变量配置文件添加环境变量系统环境变量/etc/paths系统环境变量/etc/profile和/etc/bashrc设置NODE_ENV环境变量。退出SHELL时失效查看当前所有环境变量MacOSX里的Python环境变量设置略说:当我们安装一个软件后,然后得以使用一些与该软件相关的命</div>
                    </li>
                    <li><a href="/article/1950029460245901312.htm"
                           title="Mac电脑安装了Charles,证书已经信任,电脑还是没网?如何解决" target="_blank">Mac电脑安装了Charles,证书已经信任,电脑还是没网?如何解决</a>
                        <span class="text-muted">bug菌¹</span>
<a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%A0%88Bug%E8%B0%83%E4%BC%98%28%E5%AE%9E%E6%88%98%E7%89%88%29/1.htm">全栈Bug调优(实战版)</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/CSDN%E9%97%AE%E7%AD%94%E8%A7%A3%E6%83%91%28%E5%85%A8%E6%A0%88%E7%89%88%29/1.htm">CSDN问答解惑(全栈版)</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a>
                        <div>本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!问题描述Mac电脑安装了Charles,证书已经信任,电脑还是没网,如下解决??解决方案Mac电脑安装了Charles后,出现证书已经信任但电脑仍然无法上网的问题,通常涉</div>
                    </li>
                    <li><a href="/article/1950027947146539008.htm"
                           title="os系统服务器防火墙怎么关闭,mac防火墙如何关闭" target="_blank">os系统服务器防火墙怎么关闭,mac防火墙如何关闭</a>
                        <span class="text-muted"></span>

                        <div>用久了mac防火墙,有点烦它了,想要关闭该怎么办呢?下面由小编给你做出详细的mac防火墙关闭方法介绍!希望对你有帮助!mac防火墙关闭方法一:1.在开始界面下点击【桌面】或【Win+D】快捷键或单独按【Win】显示桌面。2.在开始的位置的地方点击鼠标右键。选择【控制面板】3.进入控制面板后点击【用户帐户和家庭安全】4.在用户帐户和家庭安全界面中依次点击【系统和安全】----【Windows防火墙】</div>
                    </li>
                    <li><a href="/article/1950024290082549760.htm"
                           title="配置环境变量(以 JDK 1.8为例)macOS Mojave" target="_blank">配置环境变量(以 JDK 1.8为例)macOS Mojave</a>
                        <span class="text-muted">夜色曾沁凉</span>
<a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a><a class="tag" taget="_blank" href="/search/%26amp%3B/1.htm">&</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">程序设计</a><a class="tag" taget="_blank" href="/search/macOS/1.htm">macOS</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a><a class="tag" taget="_blank" href="/search/%26amp%3Bamp%3Bamp%3B/1.htm">&amp;amp;</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">程序设计</a>
                        <div>什么是环境变量环境变量(environmentvariables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,</div>
                    </li>
                    <li><a href="/article/1950013574671822848.htm"
                           title="在 Windows 系统 下直接使用了 Linux/macOS 的环境变量设置语法 PLATFORM=android" target="_blank">在 Windows 系统 下直接使用了 Linux/macOS 的环境变量设置语法 PLATFORM=android</a>
                        <span class="text-muted"></span>

                        <div>一、报错原因由于开发这个项目的同事,使用电脑的操作系统是macOS。所以才会出现这个错误,因为我是在Windows系统下直接使用了Linux/macOS的环境变量设置语法PLATFORM=android(项目根目录下的package.json文件,找到scripts部分,检查test:android的定义),而Windows不支持这种语法。二、解决方案cross-env是一个解决跨平台环境变量设置</div>
                    </li>
                    <li><a href="/article/1949965023216463872.htm"
                           title="在MacBook上安装Homebrew的完整指南" target="_blank">在MacBook上安装Homebrew的完整指南</a>
                        <span class="text-muted">VictorWuuu</span>
<a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/macos/1.htm">macos</a>
                        <div>在MacBook上安装Homebrew的完整指南如下,覆盖Intel和AppleSilicon(M1/M2)芯片机型,并针对国内网络环境优化:一、安装前准备检查系统版本确保macOS版本为10.14或更高(推荐升级至最新版)。安装Xcode命令行工具这是Homebrew的依赖项,在终端执行:xcode-select--install若提示“无法安装”,访问苹果开发者官网手动下载对应版本的Comma</div>
                    </li>
                    <li><a href="/article/1949945859365990400.htm"
                           title="Python【一】Python全方位知识指南" target="_blank">Python【一】Python全方位知识指南</a>
                        <span class="text-muted">程序员_CLUB</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>目录背景:为什么Python成为开发者必备技能?‌‌一、Python是什么?‌‌二、Python能做什么?六大核心应用场景‌‌1.自动化办公‌‌2.网络爬虫‌‌3.数据分析‌‌三、零基础入门Python:环境搭建与学习路径‌‌1.环境搭建(Windows/Mac详细步骤)‌2‌.基础语法速成(7天掌握)‌四、实战项目推荐(*****)‌‌五、学习建议与避坑指南(新手常见错误)‌六、总结:**背景:</div>
                    </li>
                    <li><a href="/article/1949945604893372416.htm"
                           title="Python爬虫【三十二章】爬虫高阶:动态页面处理与Scrapy+Selenium+BeautifulSoup分布式架构深度解析实战" target="_blank">Python爬虫【三十二章】爬虫高阶:动态页面处理与Scrapy+Selenium+BeautifulSoup分布式架构深度解析实战</a>
                        <span class="text-muted"></span>

                        <div>目录引言一、动态页面爬取的技术背景1.1动态页面的核心特征1.2传统爬虫的局限性二、技术选型与架构设计2.1核心组件分析2.2架构设计思路1.分层处理2.数据流三、代码实现与关键技术3.1Selenium与Scrapy的中间件集成3.2BeautifulSoup与ScrapyItem的整合3.3分布式爬取实现3.3.1Scrapy-Redis部署3.3.2多节点启动四、优化与扩展4.1性能优化策略</div>
                    </li>
                    <li><a href="/article/1949943967034437632.htm"
                           title="Python爬虫【三十一章】爬虫高阶:动态页面处理与Scrapy+Selenium+Celery弹性伸缩架构实战" target="_blank">Python爬虫【三十一章】爬虫高阶:动态页面处理与Scrapy+Selenium+Celery弹性伸缩架构实战</a>
                        <span class="text-muted"></span>

                        <div>目录引言一、动态页面爬取的技术挑战1.1动态页面的核心特性1.2传统爬虫的局限性二、Scrapy+Selenium:动态爬虫的核心架构2.1技术选型依据2.2架构设计2.3代码实现示例三、Celery:分布式任务队列的引入3.1为什么需要Celery?3.2Celery架构设计3.3代码实现示例3.4Scrapy与Celery的集成四、优化与扩展4.1性能优化4.2分布式部署4.3反爬对抗五、总结</div>
                    </li>
                                <li><a href="/article/43.htm"
                                       title="集合框架" target="_blank">集合框架</a>
                                    <span class="text-muted">天子之骄</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E9%9B%86%E5%90%88%E6%A1%86%E6%9E%B6/1.htm">集合框架</a>
                                    <div>   集合框架 
集合框架可以理解为一个容器,该容器主要指映射(map)、集合(set)、数组(array)和列表(list)等抽象数据结构。 
从本质上来说,Java集合框架的主要组成是用来操作对象的接口。不同接口描述不同的数据类型。 
  
简单介绍: 
  
Collection接口是最基本的接口,它定义了List和Set,List又定义了LinkLi</div>
                                </li>
                                <li><a href="/article/170.htm"
                                       title="Table Driven(表驱动)方法实例" target="_blank">Table Driven(表驱动)方法实例</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/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/Table+Driven/1.htm">Table Driven</a><a class="tag" taget="_blank" href="/search/%E8%A1%A8%E9%A9%B1%E5%8A%A8/1.htm">表驱动</a>
                                    <div>实例一:   
/**
 * 驾驶人年龄段
 * 保险行业,会对驾驶人的年龄做年龄段的区分判断
 * 驾驶人年龄段:01-[18,25);02-[25,30);03-[30-35);04-[35,40);05-[40,45);06-[45,50);07-[50-55);08-[55,+∞)
 */
public class AgePeriodTest {

    //if...el</div>
                                </li>
                                <li><a href="/article/297.htm"
                                       title="Jquery 总结" target="_blank">Jquery 总结</a>
                                    <span class="text-muted">cuishikuan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/jquery%E6%96%B9%E6%B3%95/1.htm">jquery方法</a>
                                    <div>1.$.trim方法用于移除字符串头部和尾部多余的空格。如:$.trim('   Hello   ') // Hello2.$.contains方法返回一个布尔值,表示某个DOM元素(第二个参数)是否为另一个DOM元素(第一个参数)的下级元素。如:$.contains(document.documentElement, document.body); 3.$</div>
                                </li>
                                <li><a href="/article/424.htm"
                                       title="面向对象概念的提出" target="_blank">面向对象概念的提出</a>
                                    <span class="text-muted">麦田的设计者</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/1.htm">面向对象</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E8%BF%87%E7%A8%8B/1.htm">面向过程</a>
                                    <div>   
     面向对象中,一切都是由对象展开的,组织代码,封装数据。 
  在台湾面向对象被翻译为了面向物件编程,这充分说明了,这种编程强调实体。 
  
    下面就结合编程语言的发展史,聊一聊面向过程和面向对象。 
     c语言由贝尔实</div>
                                </li>
                                <li><a href="/article/551.htm"
                                       title="linux网口绑定" target="_blank">linux网口绑定</a>
                                    <span class="text-muted">被触发</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>刚在一台IBM Xserver服务器上装了RedHat Linux Enterprise AS 4,为了提高网络的可靠性配置双网卡绑定。 
 
一、环境描述 
我的RedHat Linux Enterprise AS 4安装双口的Intel千兆网卡,通过ifconfig -a命令看到eth0和eth1两张网卡。 
 
二、双网卡绑定步骤: 
2.1 修改/etc/sysconfig/network</div>
                                </li>
                                <li><a href="/article/678.htm"
                                       title="XML基础语法" target="_blank">XML基础语法</a>
                                    <span class="text-muted">肆无忌惮_</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a>
                                    <div>一、什么是XML? 
XML全称是Extensible Markup Language,可扩展标记语言。很类似HTML。XML的目的是传输数据而非显示数据。XML的标签没有被预定义,你需要自行定义标签。XML被设计为具有自我描述性。是W3C的推荐标准。 
  
二、为什么学习XML? 
用来解决程序间数据传输的格式问题 
做配置文件 
充当小型数据库 
  
三、XML与HTM</div>
                                </li>
                                <li><a href="/article/805.htm"
                                       title="为网页添加自己喜欢的字体" target="_blank">为网页添加自己喜欢的字体</a>
                                    <span class="text-muted">知了ing</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%97%E4%BD%93+%E7%A7%92%E8%A1%A8+css/1.htm">字体 秒表 css</a>
                                    <div>@font-face {
			font-family: miaobiao;//定义字体名字
			font-style:  normal;
		    font-weight: 400;
			src: url('font/DS-DIGI-e.eot');//字体文件
		} 
使用: 
 
<label style="font-size:18px;font-famil</div>
                                </li>
                                <li><a href="/article/932.htm"
                                       title="redis范围查询应用-查找IP所在城市" target="_blank">redis范围查询应用-查找IP所在城市</a>
                                    <span class="text-muted">矮蛋蛋</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                                    <div>原文地址: 
http://www.tuicool.com/articles/BrURbqV 
需求 
 
根据IP找到对应的城市 
 
原来的解决方案 
 
oracle表(ip_country): 
 
 
查询IP对应的城市: 
 
1.把a.b.c.d这样格式的IP转为一个数字,例如为把210.21.224.34转为3524648994 
 
2. select city from ip_</div>
                                </li>
                                <li><a href="/article/1059.htm"
                                       title="输入两个整数, 计算百分比" target="_blank">输入两个整数, 计算百分比</a>
                                    <span class="text-muted">alleni123</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>	public static String getPercent(int x, int total){
		 
		double result=(x*1.0)/(total*1.0);
		System.out.println(result);
		
		
		DecimalFormat df1=new DecimalFormat("0.0000%");
		
</div>
                                </li>
                                <li><a href="/article/1186.htm"
                                       title="百合——————>怎么学习计算机语言" target="_blank">百合——————>怎么学习计算机语言</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java+%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">java 移动开发</a>
                                    <div>    对于一个从没有接触过计算机语言的人来说,一上来就学面向对象,就算是心里上面接受的了,灵魂我觉得也应该是跟不上的,学不好是很正常的现象,计算机语言老师讲的再多,你在课堂上面跟着老师听的再多,我觉得你应该还是学不会的,最主要的原因是你根本没有想过该怎么来学习计算机编程语言,记得大一的时候金山网络公司在湖大招聘我们学校一个才来大学几天的被金山网络录取,一个刚到大学的就能够去和</div>
                                </li>
                                <li><a href="/article/1313.htm"
                                       title="linux下tomcat开机自启动" target="_blank">linux下tomcat开机自启动</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a>
                                    <div>方法一: 
修改Tomcat/bin/startup.sh 为: 
export JAVA_HOME=/home/java1.6.0_27
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export PATH=$JAVA_HOME/bin:$PATH
export CATALINA_H</div>
                                </li>
                                <li><a href="/article/1440.htm"
                                       title="spring aop实例" target="_blank">spring aop实例</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/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/AOP/1.htm">AOP</a>
                                    <div>1.AdviceMethods.java 
package com.bijian.study.spring.aop.schema;

public class AdviceMethods {

	public void preGreeting() {
		System.out.println("--how are you!--");
	}
} 
2.beans.x</div>
                                </li>
                                <li><a href="/article/1567.htm"
                                       title="[Gson八]GsonBuilder序列化和反序列化选项enableComplexMapKeySerialization" target="_blank">[Gson八]GsonBuilder序列化和反序列化选项enableComplexMapKeySerialization</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/serialization/1.htm">serialization</a>
                                    <div>enableComplexMapKeySerialization配置项的含义 
 Gson在序列化Map时,默认情况下,是调用Key的toString方法得到它的JSON字符串的Key,对于简单类型和字符串类型,这没有问题,但是对于复杂数据对象,如果对象没有覆写toString方法,那么默认的toString方法将得到这个对象的Hash地址。 
  
GsonBuilder用于</div>
                                </li>
                                <li><a href="/article/1694.htm"
                                       title="【Spark九十一】Spark Streaming整合Kafka一些值得关注的问题" target="_blank">【Spark九十一】Spark Streaming整合Kafka一些值得关注的问题</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Stream/1.htm">Stream</a>
                                    <div>包括Spark Streaming在内的实时计算数据可靠性指的是三种级别: 
1. At most once,数据最多只能接受一次,有可能接收不到 
2. At least once, 数据至少接受一次,有可能重复接收 
3. Exactly once  数据保证被处理并且只被处理一次, 
  
具体的多读几遍http://spark.apache.org/docs/lates</div>
                                </li>
                                <li><a href="/article/1821.htm"
                                       title="shell脚本批量检测端口是否被占用脚本" target="_blank">shell脚本批量检测端口是否被占用脚本</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>#!/bin/bash
cat ports   |while read line
do#nc -z  -w 10  $line

nc -z -w 2 $line 58422>/dev/null2>&1if[ $?-eq 0]then
echo $line:ok
else
echo $line:fail
fi

done

这里的ports 既可以是文件</div>
                                </li>
                                <li><a href="/article/1948.htm"
                                       title="java-2.设计包含min函数的栈" target="_blank">java-2.设计包含min函数的栈</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>具体思路参见:http://zhedahht.blog.163.com/blog/static/25411174200712895228171/ 
 

import java.util.ArrayList;
import java.util.List;


public class MinStack {

	//maybe we can use origin array rathe</div>
                                </li>
                                <li><a href="/article/2075.htm"
                                       title="Netty源码学习-ChannelHandler" target="_blank">Netty源码学习-ChannelHandler</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/netty/1.htm">netty</a>
                                    <div> 
一般来说,“有状态”的ChannelHandler不应该是“共享”的,“无状态”的ChannelHandler则可“共享” 
例如ObjectEncoder是“共享”的, 但 ObjectDecoder 不是 
因为每一次调用decode方法时,可能数据未接收完全(incomplete), 
它与上一次decode时接收到的数据“累计”起来才有可能是完整的数据,是“有状态”的 
 
 

p</div>
                                </li>
                                <li><a href="/article/2202.htm"
                                       title="java生成随机数" target="_blank">java生成随机数</a>
                                    <span class="text-muted">cngolon</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>方法一: 
/** 
* 生成随机数 
* @author cngolon@126.com 
* @return 
*/ 
public synchronized static String getChargeSequenceNum(String pre){ 
StringBuffer sequenceNum = new StringBuffer(); 
Date dateTime = new D</div>
                                </li>
                                <li><a href="/article/2329.htm"
                                       title="POI读写海量数据" target="_blank">POI读写海量数据</a>
                                    <span class="text-muted">ctrain</span>
<a class="tag" taget="_blank" href="/search/%E6%B5%B7%E9%87%8F%E6%95%B0%E6%8D%AE/1.htm">海量数据</a>
                                    <div>import java.io.FileOutputStream; 
import java.io.OutputStream; 
 
import org.apache.poi.xssf.streaming.SXSSFRow; 
import org.apache.poi.xssf.streaming.SXSSFSheet; 
import org.apache.poi.xssf.streaming</div>
                                </li>
                                <li><a href="/article/2456.htm"
                                       title="mysql 日期格式化date_format详细使用" target="_blank">mysql 日期格式化date_format详细使用</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/date_format/1.htm">date_format</a><a class="tag" taget="_blank" href="/search/%E6%97%A5%E6%9C%9F%E6%A0%BC%E5%BC%8F%E8%BD%AC%E6%8D%A2/1.htm">日期格式转换</a><a class="tag" taget="_blank" href="/search/%E6%97%A5%E6%9C%9F%E6%A0%BC%E5%BC%8F%E5%8C%96/1.htm">日期格式化</a>
                                    <div> 
 日期转换函数的详细使用说明 
   DATE_FORMAT(date,format) Formats the date value according to the format string. The following specifiers may be used in the format string. The&n</div>
                                </li>
                                <li><a href="/article/2583.htm"
                                       title="一个程序员分享8年的开发经验" target="_blank">一个程序员分享8年的开发经验</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                                    <div>  
在中国有很多人都认为IT行为是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一起探讨一下。 
明确入行的目的 
很多人干IT这一行都冲着“收入高”这一点的,因为只要学会一点HTML, DIV+CSS,要做一个页面开发人员并不是一件难事,而且做一个页面开发人员更容</div>
                                </li>
                                <li><a href="/article/2710.htm"
                                       title="android欢迎界面淡入淡出效果" target="_blank">android欢迎界面淡入淡出效果</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>很多Android应用一开始都会有一个欢迎界面,淡入淡出效果也是用得非常多的,下面来实现一下。 
主要代码如下: 
package com.myaibang.activity; 
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.CountDown</div>
                                </li>
                                <li><a href="/article/2837.htm"
                                       title="linux 复习笔记之常见压缩命令" target="_blank">linux 复习笔记之常见压缩命令</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/tar%E8%A7%A3%E5%8E%8B/1.htm">tar解压</a><a class="tag" taget="_blank" href="/search/linux%E7%B3%BB%E7%BB%9F%E5%B8%B8%E8%A7%81%E5%8E%8B%E7%BC%A9%E5%91%BD%E4%BB%A4/1.htm">linux系统常见压缩命令</a><a class="tag" taget="_blank" href="/search/linux%E5%8E%8B%E7%BC%A9%E5%91%BD%E4%BB%A4/1.htm">linux压缩命令</a><a class="tag" taget="_blank" href="/search/tar%E5%8E%8B%E7%BC%A9/1.htm">tar压缩</a>
                                    <div>转载请出自出处:http://eksliang.iteye.com/blog/2109693 
linux中常见压缩文件的拓展名 
*.gz   gzip程序压缩的文件
*.bz2  bzip程序压缩的文件
*.tar  tar程序打包的数据,没有经过压缩
*.tar.gz  tar程序打包后,并经过gzip程序压缩
*.tar.bz2 tar程序打包后,并经过bzip程序压缩
*.zi</div>
                                </li>
                                <li><a href="/article/2964.htm"
                                       title="Android 应用程序发送shell命令" target="_blank">Android 应用程序发送shell命令</a>
                                    <span class="text-muted">gqdy365</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>项目中需要直接在APP中通过发送shell指令来控制lcd灯,其实按理说应该是方案公司在调好lcd灯驱动之后直接通过service送接口上来给APP,APP调用就可以控制了,这是正规流程,但我们项目的方案商用的mtk方案,方案公司又没人会改,只调好了驱动,让应用程序自己实现灯的控制,这不蛋疼嘛!!!! 
 
发就发吧! 
 
一、关于shell指令: 
我们知道,shell指令是Linux里面带的</div>
                                </li>
                                <li><a href="/article/3091.htm"
                                       title="java 无损读取文本文件" target="_blank">java 无损读取文本文件</a>
                                    <span class="text-muted">hw1287789687</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6/1.htm">读取文件</a><a class="tag" taget="_blank" href="/search/%E6%97%A0%E6%8D%9F%E8%AF%BB%E5%8F%96/1.htm">无损读取</a><a class="tag" taget="_blank" href="/search/%E8%AF%BB%E5%8F%96%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6/1.htm">读取文本文件</a><a class="tag" taget="_blank" href="/search/charset/1.htm">charset</a>
                                    <div>java 如何无损读取文本文件呢? 
以下是有损的 
@Deprecated
	public static String getFullContent(File file, String charset) {
		BufferedReader reader = null;
		if (!file.exists()) {
			System.out.println("getFull</div>
                                </li>
                                <li><a href="/article/3218.htm"
                                       title="Firebase 相关文章索引" target="_blank">Firebase 相关文章索引</a>
                                    <span class="text-muted">justjavac</span>
<a class="tag" taget="_blank" href="/search/firebase/1.htm">firebase</a>
                                    <div>Awesome Firebase 
最近谷歌收购Firebase的新闻又将Firebase拉入了人们的视野,于是我做了这个 github 项目。 
Firebase 是一个数据同步的云服务,不同于 Dropbox 的「文件」,Firebase 同步的是「数据」,服务对象是网站开发者,帮助他们开发具有「实时」(Real-Time)特性的应用。 
开发者只需引用一个 API 库文件就可以使用标准 RE</div>
                                </li>
                                <li><a href="/article/3345.htm"
                                       title="C++学习重点" target="_blank">C++学习重点</a>
                                    <span class="text-muted">lx.asymmetric</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                                    <div>1.c++面向对象的三个特性:封装性,继承性以及多态性。 
  
2.标识符的命名规则:由字母和下划线开头,同时由字母、数字或下划线组成;不能与系统关键字重名。 
  
3.c++语言常量包括整型常量、浮点型常量、布尔常量、字符型常量和字符串性常量。 
  
4.运算符按其功能开以分为六类:算术运算符、位运算符、关系运算符、逻辑运算符、赋值运算符和条件运算符。 
&n</div>
                                </li>
                                <li><a href="/article/3472.htm"
                                       title="java bean和xml相互转换" target="_blank">java bean和xml相互转换</a>
                                    <span class="text-muted">q821424508</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/xml%E5%92%8Cbean%E8%BD%AC%E6%8D%A2/1.htm">xml和bean转换</a><a class="tag" taget="_blank" href="/search/java+bean%E5%92%8Cxml%E8%BD%AC%E6%8D%A2/1.htm">java bean和xml转换</a>
                                    <div>这几天在做微信公众号 
做的过程中想找个java bean转xml的工具,找了几个用着不知道是配置不好还是怎么回事,都会有一些问题, 
然后脑子一热谢了一个javabean和xml的转换的工具里,自己用着还行,虽然有一些约束吧 , 
还是贴出来记录一下  
  
  
顺便你提一下下,这个转换工具支持属性为集合、数组和非基本属性的对象。 
  
packag</div>
                                </li>
                                <li><a href="/article/3599.htm"
                                       title="C 语言初级 位运算" target="_blank">C 语言初级 位运算</a>
                                    <span class="text-muted">1140566087</span>
<a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/c/1.htm">c</a>
                                    <div>  第十章 位运算    1、位运算对象只能是整形或字符型数据,在VC6.0中int型数据占4个字节    2、位运算符:  运算符 作用  ~ 按位求反  << 左移  >> 右移  & 按位与  ^ 按位异或  | 按位或   他们的优先级从高到低;    3、位运算符的运算功能:  a、按位取反:  ~01001101 = 101</div>
                                </li>
                                <li><a href="/article/3726.htm"
                                       title="14点睛Spring4.1-脚本编程" target="_blank">14点睛Spring4.1-脚本编程</a>
                                    <span class="text-muted">wiselyman</span>
<a class="tag" taget="_blank" href="/search/spring4/1.htm">spring4</a>
                                    <div>14.1 Scripting脚本编程 
 
 脚本语言和java这类静态的语言的主要区别是:脚本语言无需编译,源码直接可运行; 
 如果我们经常需要修改的某些代码,每一次我们至少要进行编译,打包,重新部署的操作,步骤相当麻烦; 
 如果我们的应用不允许重启,这在现实的情况中也是很常见的; 
 在spring中使用脚本编程给上述的应用场景提供了解决方案,即动态加载bean; 
 spring支持脚本</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>