[原创]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实现dnspod自动更新dns解析的方法
Feb 14 Python
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
python 全文检索引擎详解
Apr 25 Python
python中获得当前目录和上级目录的实现方法
Oct 12 Python
使用python为mysql实现restful接口
Jan 05 Python
Python实现网站表单提交和模板
Jan 15 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
Python Dataframe常见索引方式详解
May 27 Python
pytorch显存一直变大的解决方案
Apr 08 Python
详解Python常用的魔法方法
Jun 03 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php购物车实现方法
2015/01/03 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
JavaScript的String字符串对象常用操作总结
2016/05/26 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
解读Python编程中的命名空间与作用域
2015/10/16 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
python分布式计算dispy的使用详解
2019/12/22 Python
如何在django中运行scrapy框架
2020/04/22 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
办公室文秘自我评价
2013/09/21 职场文书
2014的自我评价
2014/01/13 职场文书
初一地理教学反思
2014/01/16 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
会计系毕业求职信
2014/08/07 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
毕业实习感受与体会
2015/05/26 职场文书
环保建议书作文500字
2015/09/14 职场文书
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫