python爬虫基础(1)
需要了解http基本原理,网页基础知识,爬虫原理, Cookies的原理
1. URI和URL
URI: Uniform Resource Indentifier 统一资源标识符
URL: Uniform Resource Locatior
URI包括:URL和URN(统一资源名称,只负责命名)
2. 超文本
网页的源代码html就可以称为超文本,其包含很多的标签,如图片img, 段落p,这些标签经过浏览器解析后,就呈现为我们所看到的网页。
URL中http/htps就是访问资源需要的协议类型,能够保证超文本高效准确的传输到本地浏览器。
HTTP,HyperText Transfer Protocol
HTTPS HyperText Transfer Protocol over Secure Socket Layer, 相当于http的安全版
3. HTTP请求
Get: get请求的参数会包含在url里面,数据可以在url中看到,而post请求中的url不会包含这些数据和信息。get请求提交的数据最多只有1024字节
Post: 表单提交时发起的请求, 如登录过程中, 数据都是通过表单的形式传输,会包含在请求体中,上传文件时,由于内容比较大,也采用post请求
4 .请求头
用来说明服务器需要使用的附加信息,比如Cookie, Referer, User-Agent
Cookies: 这是网站为了辨别用户会话进行跟踪而存储在用户本地的数据,它的主要共功能是维持当前访问会话,我们输入用户名和密码成功登陆某个网站后,服务器会用会话保存登录状态,后面每次刷新或者请求该站点的其他页面时,会发现都是登陆状态,这就是Cookies的作用。cookies里面的信息表示了我们所对应的服务器的会话,每次浏览器在请求该站点时,都会请求头中加上cookies并将其发送给服务器,服务器通过cookies识别出是我们自己,并查出当前是登录状态,所以返回结果就是登录之后才能看到的网页内容。
user-agent: 是一个特殊的字符串头,里面包含客户使用的操作系统的版本,浏览器的版本等信息,做爬虫时加上此信息,可以模拟浏览器。如果不加,可能会被识别出为爬虫。
5.请求体
请求体一般承载post请求中的数据表单,而对于get请求,请求体为空。
Content-type | 提交数据的方式 |
application/x-www-form-urlencoded | 表单数据 |
multipart/form-data | 表单文件上传 |
application/json | 序列化json |
text/xml | xml数据 |
在爬虫中,如果需要构造post请求,需要使用正确的content-type,否则可能导致post提交后无法正常响应。
6.响应
服务器返回给客户端的信息。由三部分组成:
1. 响应状态吗(Response status code)。
200服务器响应正常
500服务器内部错误
404
2. 响应头(Response Header)
包含服务器对请求的应答信息,如
date: 响应产生的时间
content-type, 文档类型,指定返回的数据类型
Server, 服务器信息
Set-Cookies 设置cookie,响应头中的set-cookies告诉浏览器需要将此内容放在cookies中,下次请求携带cookies
3. 响应体(Response body)
响应的正文数据
6. 网页基础
组成部分:
(1)HTML 超文本标记语言, 定义网页的内容和结构
(2)CSS cascading style sheet 层叠样式表, 描述网页的布局
(3)JavaScript 定义网页行为,使用户和网页交互
7. 爬虫的基本原理
1.获取网页
首先构造请求,向网站服务器发送请求,返回的响应体就是网页源代码, python 中urllib,request等库
2.提取信息
分析第一步得到的网页源代码,提取需要的数据。 Beautiful soup, pyquery, lxml
3.保存数据
数据可以保存在:txt, json, excel文件
数据库:sql, mongodb数据库
8.Javascript渲染页面
有时候用urllib和request抓取页面,得到的HTML和在浏览器上看到的不一样,越来越多的网页采用Ajax,模块化前端工具来构建,整个页面由javascript渲染出来,我们抓取到的HTML代码只是一个空壳。可以采用分析Ajax接口,也可以使用selenium,splash这样的库来实现模拟JavaScript渲染
9.会话,cookies
需要登陆才能访问的网页,涉及到会话(session)和cookie
静态网页:
动态网页:动态解析URL中参数的变化,关联数据库并呈现不同的内容
会话, cookie是为了保持http状态而采用的技术,会话在服务器端,用来保存用户的会话信息,cookie在客户端(浏览器端),当浏览器向服务器发送请求时,会附带上浏览器的cookie信息,作为登陆的凭证。
会话维持:当客户端第一次请求服务器时,服务器返回一个请求头中带有set-cookie字段的响应给客户端,用来标记是哪一个客户,浏览器会把cookie保存起来,在下一次请求时,浏览器把cookie信息添加到请求头中提交给服务器,cookie携带了会话ID信息。服务器检查cookie即可找到对应的会话,再判断会话来以此辨认用户状态
打开cookies:具体内容如下
10. 代理的基本原理
代理指的是代理服务器,代理服务器相当于在客户端和用户之间搭建一个桥梁,客户端和服务器之间的信息传递都要经过代理。
通常爬虫在单位时间内重复访问一个网站的次数太多的话,可能会被网站识别到是爬虫,会将我们的ip封了。
采用代理可以隐藏我们的真实IP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)