爬虫基本原理

Posted wisir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫基本原理相关的知识,希望对你有一定的参考价值。

什么是爬虫?即“请求”网站并“提取”数据的“自动化”程序。

爬虫基本流程:

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

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

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

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

技术分享图片

 

Request中包含什么呢?

GET请求:请求数据暴露在URL里边;POST请求:表单提交的数据在Form Data里边。

技术分享图片

 

Response中包含什么呢?

技术分享图片

 

能抓取什么样的数据?

技术分享图片

 

解析方式有哪些?

直接处理:如得到网页源码,得到图片的二进制数据存储到本地。

json解析:得到json键值对数据,在Network下面的XHR筛选出的内容中有得到的json数据。

正则表达式

beautifulsoup库解析

pyquery库解析

xpath库解析

 

往往自己爬到的数据和网页上显示的不一样,是因为网页除了一些request请求得到的数据,还有一些js渲染的数据,这些js的数据没有爬到,所以不一样。

怎么解决javascript渲染的问题?

分析ajax请求

selenium/webdriver来操作浏览器式的获取pagesource的内容

splash库

pyv8、ghost.py

 

怎样保存数据?

文本:纯文本、json、xml等

关系型数据库:如mysql、Oracle、sqlserver等具有结构化表结构形式存储

非关系型数据库:如MongoDB、Redis等key-value形式存储

二进制文件:如图片、视频、音频等直接保存成特定格式即可

 

以上是关于爬虫基本原理的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫知识点——爬虫的基本原理

python爬虫基本原理及入门

爬虫基本原理讲解

04-爬虫的基本原理

爬虫基本原理

爬虫基本原理讲解