爬虫基础
Posted Thank CAT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫基础相关的知识,希望对你有一定的参考价值。
HTTP基本原理
URL
URL(Uniform Resource Locator),即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置 和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联 网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置 以及浏览器应该怎么处理它
hypertext
超文本:hypertext,浏览器里面看到的网页就是超文本解析而成, 其网页源代码是一系列html代码,如img表示图片,p指定段落
HTTP基本原理
-
http和https:访问资源需要的协议类型,还有其他的类型,ftp, sftp,smb等
-
http:hyper text transfer protocol,超文本传输协议,网络传 输超文本数据到本地浏览器的传送协议,保证高效而准确的传送超 文本文档
-
https : Hyper Text Transfer Protocol over Secure Socket Layer,以安全为目标的http通道,http下加入ssl层
-
作用:建立一个信息安全通道来保证数据传输的安全,确认网站的真实性
-
HTTP请求过程
- 浏览器中输入url后,浏览器向网站所在服务器发送了一个请求,网 站服务器接收请求,并对这个请求进行处理和解析,然后返回对应 的响应,传回给浏览器,再通过浏览器解析出来
-
请求:可分为四部分内容
- 请求的网站(request url)
- 请求方法(request method)
- 请求头(request headers)
- 请求体(request body)
请求方法主要分为get和post请求
- get请求
- 请求中的参数包含在url里面
- 请求提交的数据最多只有1024字节
- 百度中输入关键字,wd表示要搜索的关键字
- post请求
- 表单提交时候发起,用户登录
- 数据以表单的形式传输,不会体现在url中
- 请求提交的数据没有大小限制
- 数据传输更安全(参数不会体现在url中)
请求头
用来说明服务器要使用的附加信息,比较重要的 信息有cookie,user-agent
请求体
一般承载的内容是post请求中的表单数据,对于 get请求,请求体为空
响应
由服务器返回给客户端,可以分为三部分,响应状 态 码 ( response status code ) , 响应头 ( response headers),响应体(response body)
响应状态码
表示服务器的响应状态,200代表服务器正常 响应,404代表页面未找到,500代表服务器内部发生错误
https://blog.csdn.net/q1056843325/article/details/53147180
响应头
包含了服务器对请求的应答信息,如contenttype,server,set-cookis等
响应体
爬虫请求后解析的内容就是响应体,响应的正文数据,比如请求网页时,响应体是html代码;请求一张图片时, 响应体为图片的二进制数据;json数据等
网页基础
网页的组成
- HTML,CSS,JavaScript
- Html相当于骨架,Css相当于皮肤,JavaScript相当于肌肉
- 三者结合起来形成完善的网页
HTML:超文本标记语言(hyper text markup language)
HTML: 决定网页的结构和内容 (是什么),<head>元素标记头部文件,用<title>元素标记网页名称,用<body>元素标记网页主体,用<table>元素标记表格等等,段落用p标签表示,布局通过布局标签div嵌套组合合成
CSS:层叠样式表(cascading stytle sheets)
层叠指在html中引用了数个样式文件,并且样式发生冲突时候,浏览器能依据层叠顺序处理
样式:设定网页的表现样式(什么样子)。将网页样式提取出来方便更改某一类元素的样式,通过<style>元素插入CSS代码,<style>元素放在<head>元素中。网页中文字的大小,颜色,元素间距,排列等
JavaScript(JS)
- Html和Css只是实现静态信息,缺乏交互性。网页的交互和动画效果 通过JavaScript实现
- JavaScript通过单独的文件形式加载,后缀为js
- Html中通过<script>标签引入
爬虫基本原理
爬虫基本流程
- 获取网页源代码:通过请求库来实现,urllib,requests等实现 http请求
- 提取信息:分析网页源代码,提取数据,如正则表达式,beautiful soup,pyquery,lxml等
- 保存数据:保存为txt,json或数据库
抓什么数据
- Html代码
- Json字符串(api接口,手机端大部分是这种数据格式)
- 二进制文件(图片,音频,视频等)
- 各种扩展名的文件:css,JavaScript,各种配置文件等
JavaScript渲染页面
- 用urllib或requests抓取网页时,得到的源代码和浏览器中看到的不一样
- 越来越多的网页采用ajax、前端模块化工具来构建,整个网页都是 JavaScript渲染出来的
- 需要分析ajax接口,或使用selenium等库实现模拟JavaScript渲染
- 页面渲染/https://blog.csdn.net/zyf__java/article/details/73526682
cookies
- cookies在浏览器端,在访问动态网页时候浏览器会自动附带上它发 送给服务器,服务器通过识别cookies并鉴定其是哪个用户,判断其 是否登录状态,然后返回对应的响应
- cookies / https://baike.baidu.com/item/cookie/1119?fr=aladdin
爬虫代理
- 代理网络用户去取得网络信息
- 代理的作用:突破自身IP访问限制,访问团体内部资源,提高访问 速度,隐藏真实IP
- 爬虫代理可以获得较好的爬取效果(防止被封禁或输入验证码登录)
检查robots.txt
- Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬 虫排除标准”(Robots Exclusion Protocol),网站通过Robots协 议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取
- 当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是 否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内 容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够 访问网站上所有没有被口令保护的页面
以上是关于爬虫基础的主要内容,如果未能解决你的问题,请参考以下文章