爬虫基本原理

1. 什么是爬虫

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

2. 爬虫基本流程

  • 发起请求

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

  • 获取响应

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

  • 解析内容

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

  • 保存数据

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

3. 什么是Request和Response

4. Request中包含什么

  • 请求方式

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

  1. GET:请求的参数全都包含在请求的网址中。直接输入链接即可访问。
  2. POST:与GET不同,请求的信息封装了,包含在Formdata中。需要构造表单,然后点击提交。
  • 请求URl

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

  • 请求头Headers

包含请求时的头部文件,包含了很重要配置信息,如User_Agent、Host、Cookies等信息。

  • 请求体

请求时额外携带的数据,如表单提交时的表单数据。一般GET请求无需请求体,POST请求则需要请求体。

5. Response中包含什么

  • 响应状态status_code

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

  • 响应头headers

如内容类型、内容长度、服务器信息、设置Cookie等等。键值对的形式。

  • 响应体

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

6. 能抓怎样的数据

  • 网页文本

如HTML文档、Json格式文本等。

  • 图片

获取到的是二进制文件、保存为图片格式。

python //example 保存了一个图片 import requests response = requests.get('https://www.baidu.com/img/baidu_jgylogo3.gif') print(response.content) with open('C:/Users/Administrator/Desktop/1.gif', 'wb') as f: f.write(response.content)

  • 视频

同为二进制文件,保存为视频格式即可。

  • 其它

7. 怎样进行网页的解析

  • 解析方式
  1. 直接处理
  2. Json解析(Ajax)
  3. 正则表达式
  4. BeautifulSoap
  5. PyQuery
  6. XPath
  • 为什么抓到的和浏览器看到的不一样

因为抓到的结果里面有很多js文件,里面包含的网页中内容的请求。浏览器则是把所有js加载完毕后才显示出来的。

8. 怎样解决JavaScript渲染的问题

  • 分析Ajax请求
  • Selenium/WebDriver (模拟渲染)
  • Splash(同上)
  • PyV8、Ghost.py

9. 怎样保存数据

  • 文本

纯文本、Json、Xml等

  • 关系型数据库

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

  • 非关系型数据库

如MongoDB、Redis等Key_Value形式存储。

  • 二进制文件

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

Python爬虫基本原理的更多相关文章

  1. python爬虫基本原理及入门

    爬虫:请求目标网站并获得数据的程序 爬虫的基本步骤: 使用python自带的urllib库请求百度: import urllib.request response = urllib.request.u ...

  2. Python爬虫【一】爬虫的基本原理

    一.爬虫基本原理 1.获取网络数据 用户方式:浏览器提交请求->下载网页代码->解析/渲染成页面 爬虫方式:模拟浏览器发送请求->下载网页代码->只提取有用的数据->存放 ...

  3. python应用之爬虫实战1 爬虫基本原理

    知识内容: 1.爬虫是什么 2.爬虫的基本流程 3.request和response 4.python爬虫工具 参考:http://www.cnblogs.com/linhaifeng/article ...

  4. Python爬虫学习一------HTTP的基本原理

    昨天刚买的崔大大的<Python3网络爬虫开发实战>,今天就到了,开心的读完了爬虫基础这一章,现记录下自己的浅薄理解,如有见解不到位之处,望指出. 1.HTTP的基本原理 ①我们经常会在浏 ...

  5. Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  6. Python爬虫基础知识入门一

    一.什么是爬虫,爬虫能做什么 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.比如它在抓取一个网 ...

  7. python爬虫如何入门

    学爬虫是循序渐进的过程,作为零基础小白,大体上可分为三个阶段,第一阶段是入门,掌握必备的基础知识,第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,第三阶段是自己动手,这个阶段你开始有自己的解题思 ...

  8. python爬虫知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  9. Python爬虫实践 -- 记录我的第二只爬虫

    1.爬虫基本原理 我们爬取中国电影最受欢迎的影片<红海行动>的相关信息.其实,爬虫获取网页信息和人工获取信息,原理基本是一致的. 人工操作步骤: 1. 获取电影信息的页面 2. 定位(找到 ...

随机推荐

  1. linux 下oracle 11g静默安装(完整版)

    1.操作系统及Oracle版本Linux版本:CentOS release 6.5Oracle版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Lin ...

  2. 关于eclipse安装Genymotion插件的方法

    其实Genymotion的安装方法也有两种:在线安装和离线安装,不过推荐使用在线安装,这个更快.这里我只说在线安装的方法. 打开eclipse,点击help-install new software ...

  3. vc的环境变量配置和缺少mspdb60.dll的解决方法

    vc的编译器是cl.exe,我们如果在vc中编译就不用配置环境,但是如果要在任何位置用命令提示符打开编译器cl.exe来编译程序,那么就要配置环境了. 下面我就讲讲vc的环境变量配置和缺少mspdb6 ...

  4. java 常用正则表达式总结

    邮政编码: ^[1-9]\d{5}$ QQ号码: ^[1-9]\d{4,10}$ 或者:[1-9][0-9]{4,11} 邮箱: ^[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0- ...

  5. [Bzoj 2547] [Ctsc2002] 玩具兵

    2547: [Ctsc2002]玩具兵 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 317  Solved: 152[Submit][Status] ...

  6. gif文件解析

    详细资料:http://blog.csdn.net/wzy198852/article/details/17266507 MD5:98206F88B84CCC399C840C8EEC902CCF GI ...

  7. 笔记:MyBatis 其他特性

    多行结果集映射成Map 如果你有一个映射语句返回多行记录,并且你想以HashMap的形式存储记录的值,使用记录列名作为key值,而记录对应值或为value值.我们可以使用sqlSession.sele ...

  8. MySQL详解--锁,事务

    http://www.cnblogs.com/jukan/p/5670950.html http://blog.csdn.net/xifeijian/article/details/20313977 ...

  9. 读headFirst设计模式 - 工厂模式

    每次写博客都不知道要怎么引入要写的主题,挺头疼的一件事.今天就直接开门见山,今天要学的就是工厂模式,工厂就是批量生产制造东西的地方.在这里,工厂就是批量生产对象的地方. 学习书上的例子 假如你现在有一 ...

  10. uboot中的命令体系

    一.uboot的命令体系介绍以及实例分析: U-Boot 的命令实现大多在 common 目录下.在该目录下命令的代码文件都是以“ cmd_”开头的,如下图所示: 其中每一个文件都是一个命令实现的代码 ...