Python 爬虫 4爬虫基本原理
Posted SAP剑客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 爬虫 4爬虫基本原理相关的知识,希望对你有一定的参考价值。
爬虫基本原理
爬虫的基本流程
1、获取网页源代码:通过请求库实现,urllib,requests等实现HTTP请求;
2、提取信息:分析网页源代码,提取数据,如正则表达式,beautiful soup,pyquery,Ixml等;
3、保存数据:保存至txt,json或数据库;
抓什么数据
- html代码;
- Json字符串(api接口,手机端大部分是这种数据格式);
- 二进制文件(图片,音频,视频等);
- 各种扩展名的文件(css,javascript,各种配置文件等);
Javascript渲染页面
用urllib或者requests抓取网页的时候,得到的源代码和浏览器中看到的不一样。
越来越多的网页采用ajax、前端模块化工具来构建,整个网页都是Javascript渲染出来的。需要分析ajax接口,或者使用selenium等库实现模拟Javascript渲染。
【页面渲染】
页面渲染就是浏览器的渲染引擎将HTML代码根据CSS定义的规则显示在浏览器窗口中的过程。
大致工作原理如下:
- 用户输入网址,浏览器向服务器发出请求,服务器返回html文件;
- 渲染引擎开始载入html代码,并将HTML中的标签转化为DOM节点,生成DOM树;
- 如果引用了外部CSS文件,则发出CSS文件请求,服务器返回该文件;
- 如果引用了外部JS文件,则发出JS文件请求,服务器返回该文件后开始运行;
- 渲染引擎继续载入html中的部分的代码,并开始解析前面返回的CSS文件,然后根据CSS选择器计算出节点的样式,创建渲染树;
- 从根节点递归调用,计算每一个元素的大小、位置等,给每个节点所应该出现在屏幕上的精确坐标;
- 如果body中的引用了图片资源,则立即向服务器发出请求,此时渲染引擎不会等待图片下载完毕,而是继续渲染后面的代码;
- 服务器返回图片文件,由于图片占用了一定面积,影响了后面段落的排版,因此引擎需要回过头来重新渲染这部分代码;
- 如果此时JS脚本中运行了style.display=”none”, 布局被改变,引擎也需要重新渲染这部分代码;
- 直到页面渲染完毕。
cookies
cookies在浏览器端,在访问动态网页时候浏览器会自动附带上它并发送给服务器,服务器通过识别cookies并鉴定其是哪个用户,判断其是否登录状态,然后返回对应的响应。
爬虫代理
代理网络用户去取得网络信息;
代理的作用:突破自身IP访问限制,访问团体内部资源,提高访问速度,隐藏真实IP;
爬虫代理可以获得较好的爬取效果(防止被封禁或者输入验证码登录);
检查robots.txt
Robots协议(也称之为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上的所有没有被口令保护的页面。
爬虫的攻与防
以上是关于Python 爬虫 4爬虫基本原理的主要内容,如果未能解决你的问题,请参考以下文章