python3爬虫学习笔记(二)

爬虫学习笔记(二)

引言

第二部分内容,主要是介绍一些爬虫原理以及网页的基础知识

1.HTTP原理

概念

1.URI,URL

uniform resource identifier,统一资源标志符
uniform resource locator,统一资源定位符

2.超文本hypertext

超链接文本

3.HTTP,HTTPS

hyper text transfer protocol,超文本传输协议http
将超文本数据从网络传输到本地的传送协议。
https,则是http的安全版本,加入了secure socket layer层,即ssl层。

2.http请求过程

客户端向服务器发送请求有4部分:请求方法(method),请求地址(url),请求头(header),请求体(body)

请求方法

  • get
    url中包含请求参数;最多1024字节

  • post
    需要登陆之类的请求用post,由于数据通过表单传输,不会体现在url中;字节无限制

原因:需要登陆的包含用户账号密码等敏感信息,用get请求会暴露在url中;上传较大文件也用post请求。

请求地址

请求头

常用请求头:

1.host-主机ip和端口号

2.cookie-维持当前访问会话,比如每次等登陆状态服务器都能识别。

3.user-agent-服务器识别客户的操作系统、浏览器之类的版本信息。

4.content-type-互联网媒体类型,请求中的文件类型。

请求体

只用于post请求表单数据,get请求为空。

响应

1.响应状态码

表示服务器响应状态,200-正常,404-页面未找到,500-服务器内部错误
常见的响应错误及原因,可以参考这篇博文。

2.响应头

3.响应体

网页的源代码

2.网页基础知识

组成

主要有:html,css,javascript;分别对应-骨架、皮肤、肌肉

1.html

超文本标记语言(hyper text markup language),用于描述网页的语言
img-图片;video-视频,p-段落,div-布局标签。
关于html基础,可以参考这边w3school-html教程。

2.css

层叠式样式表(cascading style sheets),决定网页字大小、颜色、元素间距、排列等。
用link标签引入

3.javascript

帮助用户实现动态交互等页面功能,比如:下载进度条、提示框等。
用script标签引入。

所以html定义网页内容和结构,css描述网页布局,JavaScript定义网页行为。

结构

doctype-定义文档类型

html标签要闭合

定义了网页编码

一般结构是html标签嵌套head和body标签,head用于定义网页配置和引用,body用于定义网页正文。

节点树及节点间的关系

dom(document object model),文档对象模型

节点树,节点关系-父(parent),子(child),兄弟(sibling)

href-属性、a-超链接

选择器

用于定位节点的工具

3.爬虫基本原理

javascript渲染页面

抓取页面时源码和浏览器内容不同,是由于网页使用ajax或者JavaScript渲染得到的。网页会先加载html,然后加载JavaScript代码,得到完整界面。

会话和cookies

静态和动态网页

静态:加载快、简单、可维护性差
动态:灵活多变

保持http连接状态

会话和cookies,cookies里保存了登陆凭着,下次请求携带cookies无需重新登陆。将登陆后获取的cookies放入请求头,可以直接请求。关于会话和cookies可以看这篇博文

  • 会话机制:cookies在客户端记录信息,确定身份;session在服务器端记录信息,确定身份。

4.代理基本原理

使用代理可以伪装ip,防止由于单位时间内访问次数太大而被封ip的情况发生。

简言之就是客户端和服务器之间的中转站。

你可能感兴趣的:(python3爬虫学习笔记(二))