Python3网络爬虫开发实践读书笔记 --- 第二章 爬虫基础

这一系列文章是我在阅读“Python3网络爬虫开发实践”一书以及其他线上资料学习爬虫过程中的一些笔记和心得,希望能分享给大家。

第二章 爬虫基础知识
章节结构:

  • HTTP
  • 网页
  • 爬虫原理
  • 会话和Cookies
  • 代理

具体内容:

  • HTTP

1.URI (Uniform Resource Identifier 统一资源标识符) & URL (Universal Resource Locator 统一资源定位符)
URI = URL + URN (Universal Resource Name 统一资源名称)
URL = 访问协议 + 访问路径 + 资源名称
URN = 访问名称
2.超文本 Hypertext
浏览器解析超文本(Ex.网页HTML源代码) -> 看到的网页
3.HTTP(Hyper Text Transfer Protocol) & HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)
HTTP: 从网络传输超文本数据到本地浏览器的传送协议
HTTPS = HTTP + SSL -> 加密传输
4.HTTP请求过程
用户在浏览器输入URL回车 --- 浏览器向网址所在服务器发送请求 --- 服务器收到请求进行处理解析 --- 返回对应响应(页面源代码)--- 浏览器解析源代码 --- 呈现网页
One Request+Response process = Name(请求名称,URL最后一部分) + Status(状态码) + Type(请求文档类型) + Initiator(请求源) + Size(资源大小) + Time(发起请求到响应的总时间) + Waterfall(可视化瀑布流)
5.请求:客户端 -> 服务端
请求 = 请求方法(Request Method: GET/POST/HEAD/PUT/DELETE/CONNECT/OPTION/TRACE) + 请求的网址(Request URL) + 请求头(Request Header: Accept + Accept-Language + Accept-Encoding + Host + Cookie + Referer + User-Agent + Content=Type) + 请求体(Request Body: application/x-www-form-urlencoded | multipart/form-data | application/json | text/xml)
6.响应:响应状态码(Response Status Code) + 响应头(Response Header = Data + Last-Modified + Content-Encoding + Server + Content-Type + Set-Cookie + Expires) + 响应体(Response Body)

  • 网页 = HTML(Hyper Text Markup Language 超文本标记语言) + JavaScript + CSS(Cascading Style Sheets 层叠样式表)

HTML是描述网页的框架,有标签表示不同的元素
CSS是网页排版央视标准,可以定义HTML中节点的样式,使网页更美观
节点树:HTML中所有标签定义的都是节点,他们构成了一个HTML DOM树
DOM(Document Object Modle 文档对象模型): 定义了访问HTML文档的标准

  • 爬虫原理

互联网和爬虫 = 网和蜘蛛
网页 = 网的节点
网页之间的链接 = 网节点间的线

爬虫就是获取网页并提取和保存信息的自动化程序:获取网页(urllib/request etc.)--- 提取信息(Beautiful Soup/pyquery/lxml etc.) --- 保存数据(MySQL/MongoDB)

可爬取的数据类型?
HTML,JSON, 二进制数据(视频,图片,音频 etc.)和各种扩展文件(.js, .css, .conf etc.)

如何获取JS渲染后的界面?模拟渲染过程

  • 会话和Cookies

静态网页 & 动态网页
静态网页的内容是HTML编写,文字图片提前写好的页面,动态网页是可以根据解析传入参数,动态变化呈现不同内容的网页

无状态HTTP
HTTP协议对于事务处理没有记忆能力,比如用户登录过的信息,在下一次请求时,HTTP协议是不记得的,所以需要会话和Cookie,会话在服务器端保存用户的会话信息,Cookie在客户端用于下次放弃请求需要带上的信息。

会话
会话是有始有终的一系列动作/信息。Web中的会话对象会存储特定用户会话所需的属性和配置信息。

Cookies
Cookies是某些网站为了辨别用户身份,进行绘画跟踪而存储在用户本地终端上的数据
会话维持
客户端第一次请求服务器,服务器返回带有Set-Cookie的响应头给客户端用于标记用户,浏览器再次访问该服务器会把这个Cookie放到请求头,这个携带了会话ID的Cookie会让服务器找到对应的会话判断用户状态

属性结构
Name + Value + Domain(可访问这个cookie的域名) + Max Age + Path + Size + HTTP(httponly字段,如果是true,只能在HTTP Header带有这个信息,document.cookie访问不行) + Secure

  • 代理

因为一些网站会有反爬虫措施,比如封申请访问次数过多的IP,这时候就需要用代理实现IP伪装。
基本原理:
代理服务器 proxy server,用于代理网络用户取取得网络信息。即在本子和服务器之间搭了一个中转站,服务器看到的就会使中转站的IP,从而实现伪装
爬虫代理就是通过访问过程中不断更换IP,防止真实IP被封
代理分类

协议区分 匿名程度区分
FTP代理服务器,HTTP代理服务器,SSL/TSL代理服务器,RTSP代理服务器(访问流媒体服务器),Telnet代理服务器,POP3/SMTP代理服务器,SOCKS代理服务器 高度匿名代理,普通匿名代理,透明代理,间谍代理

代理设置
网上免费代理
付费代利服务

你可能感兴趣的