爬虫原理

世界上80%的爬虫是基于python开发的,学好爬虫技能,对后续的大数据分析,挖掘,机器学习提供重要的数据源

网络爬虫,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本

爬虫的本质是什么

  模拟浏览器打开网页,获取网页中我们想要的那部分数据

浏览器发送消息给网址所在的服务器,这个过程叫做http Request(请求)

服务器收到浏览器发送的消息后,根据发送的内容,作出相应的处理,然后把消息传给浏览器,这个过程叫做http Response(响应)

爬虫的基本流程

发起请求

通过http库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应

获取响应内容

如果服务器能正常相应,会得到一个Response,其中的内容便是所要获取的页面内容,类型可能是html,json字符串,二进制数据(图片或者视频)等类型

解析内容

 得到的内容可能是html,可以用正则,页面解析库进行解析

  可能是json,可以直接转换为json对象解析

  可能是二进制数据,可以做保存或者进一步处理

保存数据

保存形式多种多样,可以存为文本,可以保存为数据库,或者特定格式的文件

request包含

请求方式

主要有:get和post两种常用类型,两者的区别是get请求的数据放在url中,post则是放在头部

get:向指定的资源发出"显示请求".使用get方法操作应该只用在读取数据,

post:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件).数据被包含在请求文本中,这个请求可能会创建新的资源,或者修改现有资源,抑或两者皆有

请求URL

URL,即统一资源定位符,也就是我们所说三个部分组成的网址.互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该曾样处理他

URL的格式由三个部分组成

  第一部分是协议(服务方式)

  第二部分是存储该资源的主机IP地址(也包括端口号)

  第三部分是主机资源的具体地址,比如目录和文件名

爬虫爬取数据时必须有一个目标的URl才可以获取数据,

请求头

 包含请求时的头部信息,比如User-Agent,Host,Cookies等信息

请求体

 请求时携带的数据,比如提交表单时的表单数据(post)

Response包含

  所有http响应的第一行都是状态行,依次是http版本号,三位数字组成的状态代码,以及描述状态的词语,彼此由空格分隔

响应状态

  有多种:比如  200代表成功,301跳转,404找不到页面,502服务器错误

响应头

  比如内容类型,类型长度,服务器信息,设置Cookie

响应体

  最主要的部分,包含请求资源的内容,比如html,二进制数据等

能够爬取什么样的数据

网页文本:html文档,json格式化文本

图片:获取到二进制文件,保存为图片格式

视频:二进制文件

其他:只要是能够请求到的,都可以获取

如何解析数据

1.直接处理

2.json解析

3.正则表达式处理

4.BeadutifulSoup解析处理

5.PyQuery解析处理

6.Xpath解析处理

原文地址:https://www.cnblogs.com/sunlizhao/p/8670458.html