爬虫原理一点通

1、什么是爬虫?

网络爬虫,顾名思义"网络上爬来爬去的蜘蛛"

请求网站并提取数据的自动化程序。

2、爬虫的基本流程

①发起请求

通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。

②获取响应内容

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

③解析内容

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

④保存数据

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

3、什么是Request和Response?

Request和Response工作流程如下图:

一、Request包含什么?

①请求方式

主要有GET、POST两种类型,另外还有HEAD、PUT、DELETE、OPTIONS等。

②请求URL

URL全球统一资源定位符,如一个网页文档,一张图片,一个视频等都可以用URL唯一来确定。

③请求头

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

④请求体

请求时额外携带的数据,如表单提交时的表单数据。

二、Response包含什么?

①响应状态

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

②响应头

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

③响应体

最主要的部分,包含请求资源的内容,如网页HTML、图片二进制数据等。

4、怎么样把获取的数据进行解析?

解析方式:

①直接处理(内容简单)

②Json解析(Ajax请求)

③正则表达式(规则字符串、文本)

④BeautifulSoup

⑤PyQuery

⑥XPath

5、为什么我们抓到的和浏览器看到的不一样?

怎么解决JavaScript渲染的问题?

①分析Ajax请求

②Selenium/WebDriver

③Splash

④PyV8、Ghost.py

6、可以怎样保存数据?

①文本

纯文本、Json、Xml

②关系型数据库

如MySQL、Oracle、SQL Server等具有结构化表结构形式存储。

③非关系型数据库

如MongoDB、Redis等Key-Value形式存储。

④二进制文件

如图片、视频、音频等直接保存成特定格式即可。

发布了66 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Yansky58685/article/details/103083146