爬虫的基本原理
爬虫:获取网页并提取和保存信息的自动化程序。
1、获取网页:获取网页的源代码,主要是得到响应的BODY部分;
2、提取信息:构造正则表达式或者根据网页节点属性;
3、保存数据:保存为TXT或JSON文本,也可以保存到数据库或者远程服务器;
4、自动化程序。
能抓怎样的数据:基于HTTP或HTTPS协议的,只要是这种该数据,爬虫都可以抓取。
HTTP的无状态是指HTTP协议对事物处理是没有记忆能力的,也就是说服务器不知道客户端是什么状态,缺少状态记录。
会话和Cookie是用于保持HTTP连接状态。会话在服务端,Cookie在浏览器端。
会话:会话对象用来存储特定用户会话所需的属性及配置信息。
Cookies:某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据。
会话维持:客户端第一请求服务器,服务器会返回一个请求头中带有Set-Cookie字段的响应给客户端,用来标记是哪一个用户,客户端浏览器会把Cookies保存起来。当浏览器下一次再请求该网站时,浏览器会把Cookie放在请求头一起提交给服务器,Cookie携带了会话ID信息,服务器检查该Cookies即可找到对应的会话是什么,然后在判断会话来以此辨认用户状态。
反爬虫:
封IP:服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息。可以使用代理伪装IP,让服务器检测不出来是我们的IP。
代理:
基本原理:代理服务器 proxy server。本机向代理服务器请求,代理服务器再向Web服务器请求。Web服务器中识别出的真实IP就不再是本机的IP。
代理分类:
1、根据协议分类:FTP HTTP等
2、根据匿名程度:
高度匿名:会将数据包原封不动地转发,记录的IP是代理服务器IP;
普通匿名:会在数据包上做一些改动,在服务端上有可能发现代理服务器,有一定几率追查到客户端的真实IP;
透明代理:改动数据包,告诉服务端,客户端的真实IP,主要是为了用缓存技术提高浏览速度。
间谍代理:组织或个人创建的用于记录用户传输的数据,然后进行研究、监控等目的的代理服务器。