Python爬虫
爬虫简介
网页爬取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。
请求网站并提取数据的自动化程序。
爬虫过程
- 发送过程:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。
- 获取响应内容:如果服务器能正常响应,会得到一个Response,获得的页面内容有Html,Json字符串,二进制数据。
- 解析内容:得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。
- 保存数据:保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定格式的文件。
Request与Response
- 浏览器就发送消息给该网址所在的服务器,这个过程叫做HTTP Request。
- 服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应处理,然后把消息回传给浏览器。这个过程叫做HTTP Response。
- 浏览器收到服务器的Response信息后,会对信息进行相应处理,然后展示。
http请求方法
方法 | 描述 |
---|---|
GET | 请求指定的页面信息,并返回实体主体 |
HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改 |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容 |
DELETE | 请求服务器删除指定页面 |
CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器 |
OPTIONS | 允许客户端查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 |
URL
URL是Uniform Resource Locator的缩写,即统一资源定位系统,也就是网址。
URL 遵守一种标准的语法,它由协议、主机名、域名、端口、路径、以及文件名这六个部分构成。
网页结构
- .网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JScript(活动脚本语言)。
- HTML是整个网页的结构,相当于整个网站的框架。带“<”、“>”符号的都是属于 HTML 的标签,并且标签都是成对出现的。
- CSS 表示样式,<style type="text/css">表示下面引用一个 CSS,在 CSS 中定义了外观。
- JScript 表示功能。交互的内容和各种特效都在 JScript 中,JScript 描述了网站中的各种功能。
网络爬虫结构
首先选取一部分精心挑选的种子URL。将这些URL放入待抓取URL队列。从待抓取URL队列中读取待抓取队列的URL,解析DNS,并且得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。分析已抓取URL队列中的URL,从已下载的网页数据中分析出其他URL,并和已抓取的URL进行比较去重,最后将去重过的URL放入待抓取URL队列,从而进入下一个循环.