爬虫~~~~(一)爬虫的原理

一、爬虫的基本流程

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

  2. 获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型。

  3. 解析内容:得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。

  4.保持数据:保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件。

二、什么是Request,Response

   浏览器发送消息给网址所在的服务器,这个过程就叫做HTPP Request。

  服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应的处理,然后把消息回传给浏览器,这个过程就是HTTP Response。

三、Request中包含什么?

  1.请求方式

   主要有:GET/POST两种类型常用,另外还有HEAD/PUT/DELETE/OPTION。

   GET和POST的区别就是:请求的数据GET是在url中,POST则是存放在头部。

  2.请求URL

    URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

    URL的格式由三个部分组成: 第一部分是协议(或称为服务方式), 第二部分是存有该资源的主机IP地址(有时也包括端口号),第三部分是主机资源的具体地址,如目录和文件名等。

  3.请求头:包含请求时的头部信息,如User-Agent,Host,Cookies等信息。

  4.请求体:请求是携带的数据,如提交表单数据时候的表单数据(POST)。

三、Response中包含了什么 ?

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

  1.响应状态:有多种响应状态,如:200代表成功,301跳转,404找不到页面,502服务器错误

    1xx消息——请求已被服务器接收,继续处理。

    2xx成功——请求已成功被服务器接收、理解、并接受。

    3xx重定向——需要后续操作才能完成这一请求。

    4xx请求错误——请求含有词法错误或者无法被执行。

    5xx服务器错误——服务器在处理某个正确请求时发生错误。

  常见代码: 200 OK 请求成功。

          301 目标永久性转移 。

          302 目标暂时性转移。

       400 Bad Request 客户端请求有语法错误,不能被服务器所理解。

       401 Unauthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。

       403 Forbidden 服务器收到请求,但是拒绝提供服务。

       404 Not Found 请求资源不存在,eg:输入了错误的URL。

       500 Internal Server Error 服务器发生不可预期的错误。

       503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常 。

  2.响应头:如内容类型,类型的长度,服务器信息,设置Cookie,。

  3.响应体:最主要的部分,包含请求资源的内容,如网页HTMl,图片,二进制数据等。

、如何解析数据

  1.直接处理

  2.Json解析

  3.正则表达式处理

  4.BeautifulSoup解析处理

  5.PyQuery解析处理

  6.XPath解析处理

posted @ 2020-12-29 17:02  敲代码的小付  阅读(377)  评论(0)    收藏  举报