Python爬虫原理

相信很多人都听说过大数据,马云爸爸早在2015年时就提出了,当今时代正转变为一个大数据(DT,数据技术)时代。

那么在这样一个世界,数据从何而来?

企业产生的用户数据:百度指数、阿里指数、TBI腾讯浏览指数、新浪微博指数

数据平台购买数据:数据堂、国云数据市场、贵阳大数据交易所

政府机构公开的数据:中华人民共和国国家统计局数据、世界银行公开数据、联合国数据、纳斯达克

数据管理咨询公司:麦肯锡、埃森哲、艾瑞咨询

爬取网络数据:如果需要的数据市场上没有,或者不愿意购买,那么就可以通过网络爬虫获取。

什么是网络爬虫?

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

爬虫的基本流程:

用户获取网络数据的方式有两种:

方式1:浏览器提交请求--->下载网页代码--->解析成页面

方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

爬虫要做的就是方式2,即:

图1 爬虫基本流程

1、发起请求

使用http库向目标站点发起请求,即发送一个Request

Request包含:请求头、请求体等 

Request模块缺陷:不能执行JS 和CSS 代码

2、获取响应内容

如果服务器能正常响应,则会得到一个Response

Response包含:html,json,图片,视频等

3、解析内容

解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等

解析json数据:json模块

解析二进制数据:以wb的方式写入文件

4、保存数据

数据库(MySQL,Mongdb、Redis)文件

请求Request

1、请求方式:

常见的请求方式:GET / POST

2、请求的URL

url全球统一资源定位符,用来定义互联网上一个唯一的资源 例如:一张图片、一个文件、一段视频都可以用url唯一确定。

url编码

https://www.baidu.com/s?wd=图片

图片会被编码(看示例代码)

网页的加载过程是

加载一个网页,通常都是先加载document文档,在解析document文档的时候,遇到链接,则针对超链接发起下载图片的请求。

3、请求头

User-agent:请求头中如果没有user-agent客户端配置,服务端可能将你当做一个非法用户host;

cookies:cookie用来保存登录信息

注意: 一般做爬虫都会加上请求头

请求头需要注意的参数:

(1)Referrer:访问源至哪里来(一些大型网站,会通过Referrer 做防盗链策略;所有爬虫也要注意模拟)

(2)User-Agent:访问的浏览器(要加上否则会被当成爬虫程序)

(3)cookie:请求头注意携带

4、请求体

请求体    如果是get方式,请求体没有内容(get请求的请求体放在 url后面参数中,直接能看到),如果是post方式,请求体是format data。

响应Response

1、响应状态码

  200:代表成功

  301:代表跳转

  404:文件不存在

  403:无权限访问

  502:服务器错误

2、respone header

响应头需要注意的参数:

(1)Set-Cookie:BDSVRTM=0; path=/:可能有多个,是来告诉浏览器,把cookie保存下来

(2)Content-Location:服务端响应头中包含Location返回浏览器之后,浏览器就会重新访问另一个页面

3、preview就是网页源代码

JSO数据,如网页html,图片,二进制数据等 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、什么是爬虫 互联网比喻成一张网,每张网上的节点就是数据存储的地方;Python程序类似蜘蛛,到每个节点中抓取自...
    热心市民小蔡阅读 4,495评论 0 2
  • HTTP基本原理 URI、URL、URN(Uninform Resource) URI(Identifier):统...
    GHope阅读 2,118评论 2 26
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,642评论 1 45
  • 爬虫概述 1. 目录清单 爬虫简介 通用爬虫和聚焦爬虫 网络请求那些事儿 网络数据抓包分析 2. 章节内容 2.1...
    小皇帝s阅读 708评论 0 1
  • 直奔主题 爬虫的主要作用就是爬取特定的数据,所谓的爬取没有听到的这么高大上,爬取也就是抓取爬虫主要是模仿浏览器访问...
    安静守护你阅读 7,711评论 0 0