爬虫:爬取豆瓣电影

慈云数据 2024-05-09 技术支持 43 0

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
  • 总结

    前言

    上篇我们将到如何利用xpath的规则,那么这一次,我们将通过案例来告诉读者如何使用Xpath来定位到我们需要的数据,就算你不懂H5代码是怎么个嵌套或者十分复杂的嵌套也没有关系,我们可以利用一些工具来帮助大家过渡这个艰难的过程。


    一、请求先伪装

     

    当你有了一定的爬取经验,你就会非常习惯伪装UA这个点,这是作为应对反爬机制的一个小细节吧。如果你没有进行请求头的伪装,那么就会被视为爬虫。

    headers={
        'User-Agent':'写你自己的UA'
    }
    url='目标网址'

     这是请求当中比较基础的两个参数。

    import requests
    from lxml import etree
    

    不要忘记库的引入,对于lxml的etree我们在下文再介绍

    headers={
        'User-Agent':'写你自己的UA'
    }
    url='目标网址'
    response=requests.get(url=url,headers=headers)
    print(response)
    

     这样我们就能Response对象并放到我们的变量response里头。

    可以看到的是返回的状态码是200,意味着请求成功。

    那么接下来要做什么才能得到源码呢?

     

    二、请求后编码

     

    1.text和content

    示例:

    • text 返回的是响应的内容,是根据响应头部的字符串编码进行解码的字符串。
    • .content 返回的是字节方式的响应体,是bytes字节码,会自动解码gzip和deflate编码的响应数据。通常用于显示有图片,视频,音频等内容的网页

       简单来说,如果我们请求的是一些一些字符串那么就用text,如果请求的内容是图片,音频或者视频等内容(以二进制的形式存储数据)的网页就需要用content。

      2.得到源码内容

      源码内容是由字符串组成的,那么我们就使用text
      content=response.text
      print(content)
      '\n\n\n    \n    \n    \n    \n    \n        豆瓣电影\n\n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n    \n\n    \n    \n    var _head_start = new Date();\n    \n    \n    \n    \n    \n    \n  \n  var _vwo_code = (function() {\n    var account_id = 249272,\n      settings_tolerance = 0,\n      library_tolerance = 2500,\n      use_existing_jquery = false,\n      // DO NOT EDIT BELOW THIS LINE\n      f=false,d=document;return{use_existing_jquery:function(){return use_existing_jquery;},library_tolerance:function(){return library_tolerance;},finish:function(){if(!f){f=true;var a=d.getElementById(\'_vis_opt_path_hides\');if(a)a.parentNode.removeChild(a);}},finished:function(){return f;},load:function(a){var b=d.createElement(\'script\');b.src=a;b.type=\'text/javascript\';b.innerText;b.onerror=function(){_vwo_code.finish();};d.getElementsByTagName(\'head\')[0].appendChild(b);},init:function(){settings_timer=setTimeout(\'_vwo_code.finish()\',settings_tolerance);var a=d.createElement(\'style\'),b=\'body{opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;}\',h=d.getElementsByTagName(\'head\')[0];a.setAttribute(\'id\',\'_vis_opt_path_hides\');a.setAttribute(\'type\',\'text/css\');if(a.styleSheet)a.styleSheet.cssText=b;else a.appendChild(d.createTextNode(b));h.appendChild(a);this.load(\'//dev.visualwebsiteoptimizer.com/j.php?a=\'+account_id+\'&u=\'+encodeURIComponent(d.URL)+\'&r=\'+Math.random());return settings_timer;}};}());\n\n  +function () {\n    var bindEvent = function (el, type, handler) {\n        var $ = window.jQuery || window.Zepto || window.$\n       if ($ && $.fn && $.fn.on) {\n           $(el).on(type, handler)\n       } else if($ && $.fn && $.fn.bind) {\n           $(el).bind(type, handler)\n       } else if (el.addEventListener){\n         el.addEventListener(type, handler, false);\n       } else if (el.attachEvent){\n         el.attachEvent("on" + type, handler);\n       } else {\n         el["on" + type] = handler;\n       }\n     }\n\n    var _origin_load = _vwo_code.load\n    _vwo_code.load = function () {\n      var args = [].slice.call(arguments)\n      bindEvent(window, \'load\', function () {\n        _origin_load.apply(_vwo_code, args)\n      })\n    }\n  }()\n\n  _vwo_settings_timer = _vwo_code.init();\n  \n\n\n    \n    img { max-width: 100%; }\n    \n    \n\n    \n\n\n\n  \n    var _body_start = new Date();\n\n    \n    \n\n\n\n    \n\n\n\n\n  \n    \n\n  登录/注册\n\n\n\n    \n  下载豆瓣客户端\n  \n    豆瓣 6.0 全新发布\n    ×\n  \n  \n    

      豆瓣

      \n

      扫码直接下载

      \n \n iPhone\n ·\n Android\n \n \n\n\n \n\n\n\n
        \n
      • \n 豆瓣\n
      • \n
      • \n 读书\n
      • \n
      • \n 电影\n
      • \n
      • \n 音乐\n
      • \n
      • \n 同城\n
      • \n
      • \n 小组\n
      • \n
      • \n 阅读\n
      • \n
      • \n FM\n
      • \n
      • \n 时间\n
      • \n
      • \n 豆品\n
      • \n
      \n\n\n \n\n\n ;window._GLOBAL_NAV = {\n DOUBAN_URL: "https://www.douban.com",\n N_NEW_NOTIS: 0,\n N_NEW_DOUMAIL: 0\n };\n\n\n\n\n \n\n\n\n\n \n\n\n\n \n\n\n\n\n\n \n \n \n 豆瓣电影\n \n \n \n \n 搜索:\n \n \n \n \n \n \n \n \n \n \n \n \n\n\n
        \n
      • 影讯&购票\n
      • \n
      • 选电影\n
      • \n
      • 电视剧\n
      • \n
      • 排行榜\n
      • \n
      • 影评\n
      • \n
      • 2023年度榜单\n
      • \n
      • 2023年度报告\n
      • \n
      \n\n\n \n \n\n\n\n
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon