9q13nh 发表于 2024-8-25 09:47:29

只需5分钟,彻底弄懂网络爬虫是什么


    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">针对</span><span style="color: black;">非常多</span>学习计算机与编程的<span style="color: black;">朋友</span>来讲,<strong style="color: blue;">(网络)爬虫技术</strong>
    </p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">是一个又<span style="color: black;">熟练</span>又<span style="color: black;">奥秘</span>的名字。它给人的感觉,就像是一门无所<span style="color: black;">不可</span>的技术,<span style="color: black;">经过</span>它<span style="color: black;">能够</span>获取到网络上<span style="color: black;">各样</span>数据。爬虫是不是真的这么神呢,本文将会以最直白的方式带你<span style="color: black;">认识</span>爬虫的今世前生。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">爬虫——互联网的原住民</span></strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">爬虫的起源非常的早,<span style="color: black;">能够</span>说互联网诞生没多久,爬虫就<span style="color: black;">显现</span>了,绝对的互联网原住民(土著)。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkj4mUgPibVfMgp82taoicK92ObLsaLiaa4aRGN0uhagBXo9PQlShB4YPLg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">初期</span>的互联网,可不像<span style="color: black;">此刻</span>这么蓬勃与便利。<span style="color: black;">例如</span><span style="color: black;">咱们</span><span style="color: black;">此刻</span>习以为常的<span style="color: black;">各样</span>搜索引擎:百度、谷歌之类的,那时还是不存在的。互联网上只是一个一个的孤立的网站,这些网站中的数据都是分布开的,<span style="color: black;">拜访</span>起来很不方便。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">有人就想,能<span style="color: black;">不可</span>写个自动运行程序,把这些网站上的数据都收集起来,方便<span style="color: black;">大众</span>来获取呢?</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">说干就干,于是最早的爬虫程序就诞生了,这些爬虫程序<span style="color: black;">能够</span>抓取互联网上的所有网页,<span style="color: black;">而后</span>将所有页面上的内容复制到数据库中,再对内容进行处理、<span style="color: black;">归类</span>、制作索引…以方便用户查阅。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">1998年的Google网站</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkMuNUgIickibD7qXWUwHlHVdgNMicfSyKiaNfm0cw0sMRG6ytdPfxQ6KTpQ/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">为啥<span style="color: black;">咱们</span>在百度上搜索一下关键词,立刻就会有<span style="color: black;">非常多</span>结果出来,指向<span style="color: black;">区别</span>的网站或页面?</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkz2ic3mxV6akvibNWKuqmwkeAm6OjR0iaYUyTKjX2cIWnXAPWxqbfKUO5A/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">由于</span>在这些搜索引擎的<span style="color: black;">背面</span>,<span style="color: black;">便是</span>爬虫程序在日夜<span style="color: black;">一直</span>的在互联网上收集数据。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">因此</span>:爬虫——搜索引擎<span style="color: black;">背面</span>的"男人"</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">爬虫(Spider)名字的来历</span></strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">爬虫<span style="color: black;">便是</span>一段执行的程序,能够自动的从网页上获取信息并<span style="color: black;">保留</span>。那<span style="color: black;">为何</span>这类程序被命名为爬虫呢。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">这就要从爬虫的英文名说起了。在英文中,爬虫程序被命名为<strong style="color: blue;">"spider"</strong>,没错<span style="color: black;">便是</span><strong style="color: blue;">蜘蛛</strong>的意思。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">试想一下,一个小虫子,<span style="color: black;">持续</span>在网(络)上爬过来爬过去,看到猎物(数据)就兴高采烈地收集起来,“蜘蛛”是不是非常的形象?</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkEqVCJNJiawOcTrLZRXkucukyzCmkyEK4z2YDSRNh93kicgpUcbFLw7kw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">因此</span>,写爬虫程序的程序员<span style="color: black;">不该</span>该被叫做程序员,而是“蜘蛛侠”(spiderman)!<img src="https://res.wx.qq.com/mpres/htmledition/images/icon/common/emotion_panel/smiley/smiley_20.png?tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkqUEcrRbqITEIxET6O4KicWICicKxfMR1TcqGj6zCJQfDbUPIDgvrPL7A/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">爬虫程序的实现原理</span></strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">其实爬虫程序的实现原理并不<span style="color: black;">繁杂</span>,<span style="color: black;">便是</span>模拟<span style="color: black;">咱们</span>人类<span style="color: black;">拜访</span>网页的过程。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span><span style="color: black;">平常</span><span style="color: black;">拜访</span>网页,<span style="color: black;">便是</span>在浏览器(browser)中输入<span style="color: black;">目的</span>网址,<span style="color: black;">而后</span>浏览器就会向<span style="color: black;">目的</span>网站发起一个HTTP请求(request),网站服务器(web server)收到这个<span style="color: black;">拜访</span>请求之后,就会把页面以HTTP响应(response)的方式,返回给浏览器。浏览器再将HTTP响应的数据渲染成<span style="color: black;">咱们</span>人类看到的页面。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkUsxuQfezoecUxt2KLdib5yCFAGqlWUGNJ8mYaElIbMWO2JPIPmERyfg/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">爬虫程序<span style="color: black;">便是</span>将<span style="color: black;">以上</span>人类的操作,用程序进行了实现。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkU3IE3B26YuquEXt2vT14FMQhZ2QA5xBE0HjdMKiaPNGG2dudSmdoCrA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">一般</span>,爬取网页数据时,只需要2个<span style="color: black;">过程</span>:</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">打开网页→将<span style="color: black;">详细</span>的数据从网页中复制并导出到表格或资源库中。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">简单<span style="color: black;">来讲</span><span style="color: black;">便是</span>,<strong style="color: blue;">抓取和复制。</strong></span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">程序的好处就在于,</span><span style="color: black;">它的</span><strong style="color: blue;"><span style="color: black;">执行速度非常的快,</span></strong><span style="color: black;">人打开一个页面要花5-10秒的时间。在<span style="color: black;">一样</span>的时间里,一个爬虫程序,可能<span style="color: black;">已然</span><span style="color: black;">拜访</span>完<strong style="color: blue;">成百上千</strong>,<span style="color: black;">乃至</span>于<span style="color: black;">更加多</span>的页面了!</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">爬虫的另一面</span></strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">然则</span>正是<span style="color: black;">由于</span>爬虫程序执行的速度非常快,<span style="color: black;">因此</span>它会带来一个问题。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span><span style="color: black;">晓得</span>,网站的服务器处理用户请求的能力是有限的。<span style="color: black;">倘若</span><span style="color: black;">短期</span>内,有<span style="color: black;">海量</span>的用户请求涌入,超出了服务器的处理能力,就会<span style="color: black;">引起</span>服务器故障,俗<span style="color: black;">叫作</span>:服务器”宕机”, <span style="color: black;">或</span>更形象的说服务器“爆”了、“挂”了。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJk9Uibib16gtwh09QXH0nN6gzoABy7Z2CIhGTPXvUqE0IlyrV2oYGVs7NA/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">服务器宕机的<span style="color: black;">平常</span>画面</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_jpg/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkqDN5NvhibBJXvicTe2A73B85woqcUvJPhVtXqibhHv9r6R9cjybCu3JUA/640?wx_fmt=jpeg&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">因此</span>,一方面,作为爬虫程序的<span style="color: black;">研发</span>者(蜘蛛侠),要<span style="color: black;">重视</span>程序爬取网站信息的频率,避免对网站的正常业务产生<span style="color: black;">明显</span>的影响。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">另一方面,网站<span style="color: black;">亦</span>加入了<span style="color: black;">有些</span>技术手段来限制<span style="color: black;">拜访</span>的频率,以及对<span style="color: black;">拜访</span>者的身份进行校验(看<span style="color: black;">拜访</span>的到底是人类还是爬虫程序!)。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">令人发指的验证码</span></strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">验证码<span style="color: black;">便是</span>被网站广泛<span style="color: black;">运用</span>的一种技术,用来辨别<span style="color: black;">拜访</span>者是人类还是爬虫程序。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkkoW5CUe2Oo3fFeqAJfzhxYcVUicPaHsmTn19Elff5MbYcNT0TaHjBUw/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">而且随着程序自动识别验证码的能力的<span style="color: black;">提高</span>,网站的验证码<span style="color: black;">亦</span><span style="color: black;">起始</span>越来越变态了,登峰造极的<span style="color: black;">便是</span>传说中的12306网站的购票验证码,别说是程序了,就连脸盲症<span style="color: black;">病人</span>的人类<span style="color: black;">亦</span>分不清啊!</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkRIWY6IGvTb1Ro3pGjibouE4PZKuL4ylwaE7FgdLH1QyLZUE9zYWH35Q/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">关于爬虫的“君子协议”</span></strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">有些</span>网站,尤其是<span style="color: black;">商场</span>网站,对爬虫<span style="color: black;">亦</span>是又爱又恨。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">一方面,<span style="color: black;">期盼</span>网页上的<span style="color: black;">机构</span>信息能在互联网上有更高的<span style="color: black;">揭发</span>度、<span style="color: black;">更易</span>被搜索引擎获取,但另一方面,又担心<span style="color: black;">机构</span>的<span style="color: black;">有些</span>机密的数据被泄漏。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">因此</span>为<span style="color: black;">认识</span>决这个问题,国际互联网制定了一个关于爬虫的“君子协议”,约定网站上的<span style="color: black;">那些</span>内容<span style="color: black;">能够</span>被爬取,<span style="color: black;">那些</span>内容不行。</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">Robots</span></strong><strong style="color: blue;"><span style="color: black;">协议(爬虫协议)</span></strong><span style="color: black;">的全<span style="color: black;">叫作</span>是“<strong style="color: blue;">网络爬虫排除标准</strong>”(RobotsExclusion Protocol),网站<span style="color: black;">经过</span>Robots协议告诉搜索引擎<span style="color: black;">那些</span>页面<span style="color: black;">能够</span>抓取,<span style="color: black;">那些</span>页面<span style="color: black;">不可</span>抓取。该协议是国际互联网界通行的道德规范,虽然<span style="color: black;">无</span>写入法律,<span style="color: black;">然则</span>每一个爬虫都应该遵守这项协议。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">以淘宝网的robots.txt为例:</p>

    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://mmbiz.qpic.cn/mmbiz_png/OvuEB1BEmf81EkfVZsLvfXEa1SLzffJkuqkxGZvlticDoc8TQ62TFqvkW0xr0EHBd9lgpIV554yolTibpCUrZ61Q/640?wx_fmt=png&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1&amp;wx_co=1" style="width: 50%; margin-bottom: 20px;"></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">以Allow 项的值开头的 URL 是<span style="color: black;">准许</span>爬虫程序<span style="color: black;">拜访</span>的。例如,Allow:/article <span style="color: black;">准许</span>百度爬虫引擎<span style="color: black;">拜访</span> /article.htm等。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">以Disallow 项为开头的链接是不<span style="color: black;">准许</span>百度爬虫引擎<span style="color: black;">拜访</span>的。例如,Disallow:/product/ 不<span style="color: black;">准许</span>百度爬虫引擎<span style="color: black;">拜访</span> /product/ 等。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">最后一行,Disallow:/ 禁止百度爬虫<span style="color: black;">拜访</span>除了 Allow 规定页面外的其他所有页面。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">因此</span>你是<span style="color: black;">不可</span>从百度上搜索到淘宝内部的<span style="color: black;">制品</span>信息的。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">但有句话说得好,防君子不防小人,总会有些不守规矩的存在,于是就有了<strong style="color: blue;">反爬虫技术</strong>。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;"><span style="color: black;">爬虫与反爬虫</span></strong></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">爬虫与反爬虫<span style="color: black;">便是</span>“矛”与“盾”的关系。<strong style="color: blue;">反爬虫</strong><span style="color: black;">便是</span>想办法阻止爬虫程序无节制的爬取网页上信息的技术。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">有<span style="color: black;">非常多</span>有趣的技术能够阻止爬虫的爬取,其中不乏<span style="color: black;">有些</span>大开脑洞的方式,让人不仅啧啧<span style="color: black;">叫作</span>奇。其实上文<span style="color: black;">说到</span>的验证码技术,<span style="color: black;">亦</span>是一种反爬虫的手段,除此之外,还有<strong style="color: blue;">文本混淆反爬虫、动态渲染反爬虫、信息校验反爬虫、代码混淆反爬虫</strong>……等等技术。</span></p>
    <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;"><span style="color: black;">由于</span>篇幅<span style="color: black;">原由</span>,这些技术在本文中就不一一为<span style="color: black;">大众</span>介绍了,请期待后续的<span style="color: black;">文案</span>吧!</span></p>




nykek5i 发表于 2024-10-4 21:25:44

“BS”(鄙视的缩写)‌

wrjc1hod 发表于 前天 01:48

交流如星光璀璨,点亮思想夜空。
页: [1]
查看完整版本: 只需5分钟,彻底弄懂网络爬虫是什么