[原创]python爬虫(入门教程、视频教程)


Posted in Python onJanuary 08, 2018

python的版本经过了python2.x和python3.x等版本,无论哪种版本,关于python爬虫相关的知识是融会贯通的,三水点靠木关于爬虫这个方便整理过很多有价值的教程,小编通过本文章给大家做一个关于python爬虫相关知识的总结,以下就是全部内容:

python爬虫的基础概述

1.什么是爬虫

网络爬虫,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页的。从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。这样看来,网络爬虫就是一个爬行程序,一个抓取网页的程序。网络爬虫的基本操作是抓取网页。

2.浏览网页的过程

在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如http://image.baidu.com/,我们会看到几张的图片以及百度搜索框,这个过程其实就是用户输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器HTML、JS、CSS等文件,浏览器解析出来,用户便可以看到形形色色的图片了。
因此,用户看到的网页实质是由HTML代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些HTML代码,实现对图片、文字等资源的获取。

3.URL的含义

URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

URL的格式由三部分组成:

①第一部分是协议(或称为服务方式)。

②第二部分是存有该资源的主机IP地址(有时也包括端口号)。

③第三部分是主机资源的具体地址,如目录和文件名等。

爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。

4.环境的配置

学习Python,当然少不了环境的配置,最初我用的是Notepad++,不过发现它的提示功能实在是太弱了,于是,在Windows下我用了PyCharm,在Linux下我用了EclipseforPython,另外还有几款比较优秀的IDE,大家可以参考这篇文章学习Python推荐的IDE。好的开发工具是前进的推进器,希望大家可以找到适合自己的IDE

分享一下关于Python环境搭建教程大家可以参考:

windows

Linux

Urllib库的使用

Urllib是python内置的HTTP请求库,包括以下模块urllib.request 请求模块、urllib.error 异常处理模块、urllib.parse url解析模块、urllib.robotparser robots.txt解析模块,三水点靠木为大家整理了关于Urllib库的一些教程:

URLError异常处理

这个是学习python爬虫的第三个大知识点,下面详细的相关教程:

Cookie的使用

Cookie 模块,顾名思义,就是用来操作Cookie的模块。Cookie这块小蛋糕,玩过Web的人都知道,它是Server与Client保持会话时用到的信息 切片。 Http协议本身是无状态的,也就是说,同一个客户端发送的两次请求,对于Web服务器来说,没有直接的关系。既然这样,有人会问,既然Http是无状态 的, 为什么有些网页,只有输入了用户名与密码通过验证之后才可以访问?那是因为:对于通过身份验证的用户,Server会偷偷的在发往Client的数据中添 加 Cookie,Cookie中一般保存一个标识该Client的唯一的ID,Client在接下来对服务器的请求中,会将该ID以Cookie的形式一并 发往Server,Server从回传回来的Cookie中提取ID并与相应的用户绑定起来,从而实现身份验证。说白了,Cookie就是一个在服务器与客户端之间相互传递的字符串。以下是三水点靠木为大家整理关于python爬虫学习中对Cookie的处理教程:

正则表达式

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了。

正则表达式的大致匹配过程是:

1.依次拿出表达式和文本中的字符比较,

2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。

3.如果表达式中有量词或边界,这个过程会稍微有一些不同。

下面是关于Python爬虫中关于正则表达式的相关教程:

Beautiful Soup的用法

简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

以上就是我们为大家在学习python爬虫中需要了解各5大知识点,并且为大家整理了关于5大知识点的相关详细教程,下面我们为大家整理了相关python爬虫的视频教程,也希望同样帮助到大家:

这是一套目前为止小编觉得最适合小白学习的体系非常完整的Python爬虫课程,使用的Python3.6的版本,用到anaconda来开发python程序,老师讲解的很细致,课程体系设置的也非常棒,完全是从浅入深一点点讲解,从Python爬虫环境的安装开始,讲解了最最基本的urllib包如何使用,如何解析request请求内容,刷选有用数据,像ajax,post,html,json等等都非常细致的一一讲解,然后逐步深入到如何利用cookie,ip代{过}{滤}理池的技术,来解决登陆验证与防止被封等等技巧,最后通过学习python爬虫框架与分布式技术来搭建一个高可用的爬虫系统,从一个小demo到一套完整系统需要的技术体系一点点就掌握了。同时老师也配合多个案例来实际演练操作,像猫眼、淘宝、今日头条等等,无论移动端、PC端的内容爬去都有涉及,纯实战演练,我想这应该是最最适合同学学习的课程了。

关于python爬虫相关的电子书分享:

作为使用Python来爬取网络数据的杰出指南,讲解了从静态页面爬取数据的方法以及使用缓存来管理服务器负载的方法。此外,本书还介绍了如何使用AJAX URL和Firebug扩展来爬取数据,以及有关爬取技术的更多真相,比如使用浏览器渲染、管理cookie、通过提交表单从受验证码保护的复杂网站中抽取数据等。本书使用Scrapy创建了一个高级网络爬虫,并对一些真实的网站进行了爬取。

爬虫最主要的处理对象就是URL,他根据URL地址取得所需要的文件内容,然后对它进行一步的处理。因此,准确的理解URL对理解网络爬虫至关重要。

本文档主要讲述的是python爬虫实战;Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。

到此小编为广大寻找python爬虫相关教程的读者们整理了以上精选的全部内容,希望能够帮助到大家。如果大家还有任何关于python爬虫的任何疑问可以在下方的留言区讨论,感谢你对三水点靠木的支持。

Python 相关文章推荐
基于python的汉字转GBK码实现代码
Feb 19 Python
Python中Iterator迭代器的使用杂谈
Jun 20 Python
python3中int(整型)的使用教程
Mar 23 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
Python使用Matplotlib实现Logos设计代码
Dec 25 Python
Python打印输出数组中全部元素
Mar 13 Python
Python中使用Counter进行字典创建以及key数量统计的方法
Jul 06 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
python 实现图片旋转 上下左右 180度旋转的示例
Jan 24 Python
python 异步async库的使用说明
May 04 Python
Python打印不合法的文件名
Jul 31 Python
小米5s微信跳一跳小程序python源码
Jan 08 #Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 #Python
Python实现的字典值比较功能示例
Jan 08 #Python
python基础之包的导入和__init__.py的介绍
Jan 08 #Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 #Python
微信跳一跳自动运行python脚本
Jan 08 #Python
python3实现跳一跳点击跳跃
Jan 08 #Python
You might like
模仿OSO的论坛(一)
2006/10/09 PHP
mysql 字段类型说明
2007/04/27 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
python生成密码字典的方法
2018/07/06 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
餐厅执行经理岗位职责范本
2014/02/26 职场文书
初中班主任心得体会
2016/01/07 职场文书