-
【归纳】爬虫基础知识
HTTP基本原理
- URL:网址,用于唯一定位并访问网络资源
- 超文本:文本+标签,HTML就是典型的超文本
- HTTP:超文本传输协议,HTTPS是HTTP的安全版
- HTTP请求过程:
- 在开发者模式下访问任意网址(如www.baidu.com),即可看到HTTP交互过程
- 完整的客户端请求包含请求方法、请求头和请求体
- 常见的请求方法:GET, POST
- 请求头(Request Headers)中的重要信息(当然还有很多其他内容,具体百度):
- Cookie:标识了用户的会话信息,服务器通过Cookie来识别用户及其状态信息
- Referer:标识这个请求是从哪个页面发来的,服务器可通过该信息进行来源统计及防盗链处理
- User-Agent:简称UA,包含客户端的操作系统、浏览器等信息,爬虫访问时如果不伪装好UA,将很容易被服务器识别出来
- 请求体:
- POST的请求体为表单信息,GET的请求体为空
- 爬虫如果要构造POST请求,需要在请求头中使用正确的Content-Type,具体见《实战》P84表2-2:Content-Type和POST提交数据方式的关系
- 服务器的响应包含三个部分:响应状态码,响应头,响应体
- 常见的响应状态码:200-正常响应,404-未找到页面,500-服务器内部错误,etc.
- 响应体:包含服务器响应的正文内容,如HTML代码,图片的二进制数据等
网页基础
- 网页的组成包括:HTML、CSS和JavaScript
- HTML:定义网页的内容和结构
- CSS:定义HTML元素的排版布局
- JS:定义网页的动态交互行为
- HTML中的元素被称为节点,HTML中的所有节点均可被JS访问、修改、创建及删除
- CSS使用选择器来定位HTML节点
- 另一种比较常用的选择器叫做XPath,它也是用来定位并访问HTML/XML节点信息的
爬虫的基本原理
- 爬虫的三个基本动作:获取网页、提取信息和保存数据
- 获取网页:可通过urllib、requests等Python库实现
- 提取信息:最通用的方法是正则表达式,但其构造过程复杂且容易出错。一个比较可行的方法是使用Beautiful Soup、pyquery、lxml等库,通过网页节点属性、CSS选择器或XPath来提取网页信息
- 现在的网页越来越多的采用JS进行构建,这时只抓HTML信息就没用了,我们需要分析其后台Ajax接口,或者用Selenium、Splash等库来实现模拟JS渲染
- 动态网页:可以响应参数,产生变化的HTML代码
会话和Cookies:
- 会话:位于服务端,保存用户的会话/状态信息
- Cookies:初始由服务端提供,然后保存于客户端,在客户端请求资源时供服务端识别用户状态信息(就像一张身份证/通行证)
- Cookies的内容具有固定的属性结构,具体请百度
- 会话和Cookies均有一个“过期时间”
代理的基本原理
- 通过代理服务器转发信息实现IP伪装
- 代理服务器的匿名程度不同,匿名程度越低的代理服务器透露的信息越多(包括它自己的信息以及我们的信息),原封不动地转发数据包的代理服务器是匿名程度最高的
- 一种比较有效的代理解决方案是ADSL拨号,拨一次号换一次IP,稳定性高
-
相关阅读:
10个最常见的JS错误
有哪些新手程序员不知道的小技巧?
有哪些新手程序员不知道的小技巧?
有哪些新手程序员不知道的小技巧?
有哪些新手程序员不知道的小技巧?
有哪些新手程序员不知道的小技巧?
有哪些新手程序员不知道的小技巧?
EF 传递的主键值的数量必须与实体上定义的主键值的数量匹配 原因
ACM2054_A=B
五一游记
-
原文地址:https://www.cnblogs.com/lokvahkoor/p/10665486.html
Copyright © 2020-2023
润新知