指尖改变世界

指尖改变世界,思考改变生活

爬虫工作原理

前言
互联网,又称网际网络,互联网始于1969年美国的阿帕网,是网络与网络之间所串联成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。网站(Website)是指在因特网上根据一定的规则,使用HTML标准通用标记语言下的一个应用)等工具制作的用于展示特定内容相关网页的集合。网站是一种沟通工具,人们可以通过网站来发布自己想要公开的资讯,或者利用网站来提供相关的网络服务。人们可以通过网页浏览器来访问网站,获取自己需要的资讯或者享受网络服务。
简单来说,要从互联网中获取信息,我们首先通过浏览器进行访问某个站点,站点网页的HTML、JavaScript、CSS代码返回给浏览器,这些代码经过解析、渲染后,将多姿多彩的网页呈现在我们眼前。

一、什么是爬虫?
如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点(也就是互联网上的站点),而爬虫就是一只蜘蛛,沿着网络抓取自己的猎物(数据)。
爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;
技术层面:通过程序模拟浏览器请求站点的行为,把站点返回的数据爬到本地,进而提取自己需要的数据,存放到文件或数据库当中,进行使用。

二、爬虫的基本流程
用户获取网络数据的方式:
方式1:通过PC端、移动端浏览器提交请求--->下载网页代码--->解析成页面
方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中
爬虫要做的就是方式2,模拟用户行为,进行信息获取。
1、发起请求
使用http库向目标站点发起请求,即发送一个Request
Request包含:请求头、请求体等 
Request:只能模拟发送一个请求,并不能解析执行JS 和CSS 代码
 
2、获取响应内容
如果服务器能正常响应,则会得到一个Response
Response包含:html,json,图片,视频等
 
3、解析内容
解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等
解析json数据:json模块
解析二进制数据:以wb的方式写入文件
 
4、保存数据
数据库(MySQL,Mongdb、Redis)
文件

三、http协议:请求与响应
request:用户将信息通过浏览器发送到服务器
response:服务器接收用户请求后,分析请求信息,返回数据
ps:浏览器接收response后,解析后把内容呈现给用户,而爬虫程序则是在接收response后,提取其中有用的信息。

四、请求:request
1、请求方式
GET、POST

2、请求的URL
请求的数据地址

3、请求头
User-agent:请求来源客户端配置,模拟浏览器,作为用户操作
cookies:用来保存登录信息
请求头需要注意的参数:
(1)referrer:访问源哪里来
(2)User-agent:访问的浏览器
(3)cookie

4、请求体
get方式:请求体内容在URL参数
post方式:format data


五、响应:response
1、响应状态码
200:代表成功
301:代表跳转
404:文件不存在
403:无权限访问
502:服务器错误

2、respone header
响应头需要注意的参数:
(1)Set-Cookie:BDSVRTM=0; path=/:可能有多个,是来告诉浏览器,把cookie保存下来
(2)Content-Location:服务端响应头中包含Location返回浏览器之后,浏览器就会重新访问另一个页面
 
3、preview就是网页源代码
JSON数据
如网页html,图片
二进制数据等

六、总结
1、爬虫流程
爬取 =》 解析 =》 存储

2、爬虫所需工具
请求库:requests,selenium(可以驱动浏览器解析渲染CSS和JS,但有性能劣势(有用没用的网页都会加载);)
解析库:正则(re),beautifulsoup,pyquery
存储库:文件,数据库
3、简单例子
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shayvmo/article/details/80352673
想对作者说点什么? 我来说一句

谷歌爬虫工作原理的介绍

2011年04月02日 26KB 下载

没有更多推荐了,返回首页

不良信息举报

爬虫工作原理

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭