文章目录
- 前言
- 一、pandas是什么?
- 二、使用步骤
- 1.引入库
- 2.读入数据
- 总结
前言
上篇我们将到如何利用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 \n
- 排行榜\n \n
- 影评\n \n
- 2023年度榜单\n \n
- 2023年度报告\n \n