[原创]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中的面向对象编程的概念
Apr 27 Python
Python实现简单HTML表格解析的方法
Jun 15 Python
python文件的md5加密方法
Apr 06 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
python生成excel的实例代码
Nov 08 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
python脚本调用iftop 统计业务应用流量的思路详解
Oct 11 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
python requests模拟登陆github的实现方法
Dec 26 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
Jan 24 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
python爬虫分布式获取数据的实例方法
Nov 26 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
php 操作excel文件的方法小结
2009/12/31 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
php中长文章分页显示实现代码
2012/09/29 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
python中self原理实例分析
2015/04/30 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python opencv之SURF算法示例
2018/02/24 Python
python requests.post带head和body的实例
2019/01/02 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
会计自荐书
2013/12/02 职场文书
技术副厂长岗位职责
2013/12/26 职场文书
外企求职信范文分享
2013/12/31 职场文书
追悼会子女答谢词
2014/01/28 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
外贸业务员求职信
2014/06/16 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书