一、爬虫基本原理

1.获取网络数据

用户方式:浏览器提交请求->下载网页代码->解析/渲染成页面

爬虫方式:模拟浏览器发送请求->下载网页代码->只提取有用的数据->存放于数据库或文件中

2.爬虫的基本原理

向网站发起请求,获取资源后分析并提取有用数据的程序

3.爬虫的基本流程

#1、发起请求

使用http库向目标站点发起请求,即发送一个Request,Request包含:请求头、请求体等

#2、获取响应内容

如果服务器能正常响应,则会得到一个Response,Response包含:html,json,图片,视频等

#3、解析内容

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

解析json数据:json模块

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

#4、保存数据

数据库,文件

4.request和response

Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)

Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)

浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。

5.Request

#1、请求方式:

常用的请求方式:GET,POST

其他请求方式:HEAD,PUT,DELETE,OPTHONS

ps:用浏览器演示get与post的区别,(用登录演示post)

post与get请求最终都会拼接成这种形式:k1=xxx&k2=yyy&k3=zzz

post请求的参数放在请求体内:

可用浏览器查看,存放于form data内

get请求的参数直接放在url后

#2、请求url

url全称统一资源定位符,如一个网页文档,一张图片

一个视频等都可以用url唯一来确定

url编码

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

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

网页的加载过程是:

加载一个网页,通常都是先加载document文档,

在解析document文档的时候,遇到链接,则针对超链接发起下载图片的请求

#3、请求头

User-agent:请求头中如果没有user-agent客户端配置,

服务端可能将你当做一个非法用户

host

cookies:cookie用来保存登录信息

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

#4、请求体

如果是get方式,请求体没有内容

如果是post方式,请求体是format data

ps:

1、登录窗口,文件上传等,信息都会被附加到请求体内

2、登录,输入错误的用户名密码,然后提交,就可以看到post,正确登录后页面通常会跳转,无法捕捉到post

6.Response

#1、响应状态

200:代表成功

301:代表跳转

404:文件不存在

403:权限

502:服务器错误

#2、Respone header

set-cookie:可能有多个,是来告诉浏览器,把cookie保存下来

#3、preview就是网页源代码

最主要的部分,包含了请求资源的内容

如网页html,图片

二进制数据等

python爬虫基本原理_Python爬虫【一】爬虫的基本原理相关推荐

  1. c语言实现爬虫功能,用C/C 扩展Python语言_python 调用c语言 python实现简单爬虫功能_python实现简单爬虫...

    用C/C 扩展Python语言 Python是一门功能强大的脚本语言,它的强大不仅表现在功能上,还表现在其扩展性上.她提供大量的API以方便程序员利用C/C++对Python进行扩展.因为执行速度慢几 ...

  2. 最流行的python爬虫框架_Python最火爬虫框架Scrapy入门与实践

    Scrapy框架简介Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 通常我 ...

  3. python 爬虫框架_Python实战:爬虫框架(6)

    数据挖掘 用于通过互联网到各个服务器获取数据 数据 公开数据:客户端浏览器访问网页所看到的数据 隐私数据:服务器内部没有暴露,具有隐私权限的数据 爬虫 网络爬虫:公开数据 蠕虫爬虫:携带具有攻击性病毒 ...

  4. 与python相关的爬虫工具_python小课堂|爬虫工程师必备的10个python爬虫工具!

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...

  5. python爬虫意思_python为什么叫爬虫

    python为什么叫爬虫 作为一门编程语言而言,Python是纯粹的自由软件,以简洁清晰的语法和强制使用空白符进行语句缩进的特点从而深受程序员的喜爱.举一个例子:完成一个任务的话,c语言一共要写100 ...

  6. python 携程_python 携程爬虫开发笔记

    前言 最近购买了<Python3 爬虫.数据清洗与可视化实战>,刚好适逢暑假,就尝试从携程页面对广州的周边游产品进行爬虫数据捕捉. 因为才学Python不够一个星期,python的命名规范 ...

  7. python编写爬虫代码_python编写简单爬虫资料汇总

    爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2.BeautifulSoup实现简单爬虫,scrapy也有实现过.最近想更好的学习爬虫,那么就尽可能的做记录吧.这篇博客就我今天的一个学习 ...

  8. python soup歌词_python学习之爬虫(一) ——————爬取网易云歌词

    接触python也有一段时间了,一提到python,可能大部分pythoner都会想到爬虫,没错,今天我们的话题就是爬虫!作为一个小学生,关于爬虫其实本人也只是略懂,怀着"Done is b ...

  9. python 静态网页_Python静态网页爬虫相关知识

    想要开发一个简单的Python爬虫案例,并在Python3以上的环境下运行,那么需要掌握哪些知识才能完成一个简单的Python爬虫呢? 爬虫的架构实现 爬虫包括调度器,管理器,解析器,下载器和输出器. ...

  10. python数据分析与爬虫区别_Python数据分析与爬虫

    数据分析重要步骤: 1.数据获取 可以进行人工收集获取部分重要数据 可以在各个数据库中导出数据 使用Python的爬虫等技术 2.数据整理 从数据库.文件中提取数据,生成DataFrame对象 采用p ...

最新文章

  1. 【CI3.1】CI框架简单使用方法
  2. 通过委派模式包装一个RxJavaCallAdapterFactory
  3. 【Android 文件管理】分区存储 ( 分区存储机制 和 文件索引数据 )
  4. 022_Jedis的事物
  5. JSR311发布Restful WebService工程
  6. 使用 cert-manager 签发免费证书
  7. 谈一谈我对前端的学习路线及方法的一些心得
  8. 为什么即使在班级均衡的情况下,准确度仍然令人困扰
  9. c ++ 继承_C ++继承| 查找输出程序| 套装1
  10. ajax走到error_jQuery中ajax 跳入error的原因总结
  11. python面试题之python下多线程的限制
  12. VC++多线程工作笔记0006---线程间同步机制1
  13. 图片渲染延迟_Qt入门DirectX11学习之旅(六)DirectX11 GBuffer Deffered延迟渲染
  14. 【IT运维】自动化运维是什么意思?有什么作用?
  15. AVPlayer AVPlayerItem cannot service a seek request with a completion handler until its status is AV
  16. 【天池大数据竞赛】“数智教育”2019数据可视化竞赛亚军方案总结
  17. 天猫魔盒系统配置服务器,天猫魔盒-玩点不一样的,简单打造低能耗WEB服务器...
  18. FPGA写约束文件+固化+上板抓信号方法(vivado软件)
  19. 计算机右键管理没有管理员权限,win7系统右键菜单没有“以管理员身份运行”选项如何恢复...
  20. lnkscape制作logo

热门文章

  1. 模拟赛 10-14考试再次翻车记
  2. Nginx负载均衡的详细配置及使用案例详解.
  3. 数据结构——划分树模板
  4. 常用电源芯片特性大集合
  5. linux主机添加discuz伪静态规则,Discuz! X2.5论坛win主机与linux主机伪静态设置方法...
  6. java点击图片发出声音_[Java教程]点击放大图片
  7. 全国计算机一级考试试题大题,2016年全国计算机一级考试试题汇集
  8. vant 动态 粘性布局_CSS Viewport 单位,很多人还不知道使用它来快速布局
  9. api laravel 统一返回方法_Laravel-自定义API返回的JSON格式
  10. MySQL函数少传参数_Mysql中的少用函数