@1-2初识Python爬虫
初识Python爬虫
环境搭建:
Python2与Python3的差异:python2与python3整体差异不大,大多是一些语法上的区别,考虑到python2只会维护到2020年,因此这里建议使用python3来作为我们的编程环境。阅读应该学习最新版本的 Python 3 还是旧版本的 Python 2?,了解两者之间的差别。
下载Python:
进入https://www.python.org/downloads/release/python-362/
下载python3.6.2版本即可。注意,最好是64位的版本(除非你的电脑是32位的)。
网速不好的同学可以直接在这里下载:http://pan.baidu.com/s/1kVsWdE3
安装过程的话只需要默认安装即可。安装完成后在cmd命令行输入python,然后回车,如果成功进入python并返回python的版本信息(我这里是3.5版本,你安装的是哪个版本就会返回哪个版本的信息),即表示python安装成功了。
其他工具下载:
- chrome浏览器:下载地址:https://www.google.cn/chrome/browser/desktop/index.html
(网速慢的可以直接在这里下载:http://pan.baidu.com/s/1bp2GgDh)
- chrome浏览器插件推荐:https://www.zhihu.com/question/20054116
- PyCharm编译器:下载地址:http://www.jetbrains.com/pycharm/download/#section=windows
(网速慢的可以直接在这里下载:http://pan.baidu.com/s/1i4EzyGt)
创建第一个实例:
urllib包:阅读urllib官方文档,了解python自带urllib库的用法
使用urllib包获取百度首页信息:
Requests包:由于requests是python的第三方库,因此首先需要安装requests库,阅读安装 Requests,了解如何快速安装requests库;
然后阅读快速上手Requests,了解python第三方库Requests的用法
使用Requests库获取百度首页信息:
爬虫三步走
- 爬虫第一步:使用requests获得数据:
1.导入requests
2.使用requests.get获取网页源码
- 爬虫第二步:使用BeautifulSoup4解析数据:
1.导入bs4
2.解析网页数据
3.寻找数据
4.for循环打印
- 爬虫第三步:使用pandas保存数据:
1.导入pandas
2.新建list对象
3.使用to_csv写入
完整的爬虫
代码运行结果:
PS:
本课程所用到的代码均可在小歪老师的GitHub上查阅或下载,地址如下:
https://github.com/zhangslob
补充资料:Python入门操作手册
学习好Python基础对于学习Python爬虫具有事半功倍的效果。就像开车一样,一个对开车一概不通的人看完别人开车,自己也能开,但是要把车开好不至于时不时掉沟里,好好学习开车的基本操作是非常必要的。
相信学习完第二节课,你已经安装好Python以及搭建好运行环境了。在下一节课开始之前,你需要先花几天的时间去了解和学习Python的基础知识。这会让你在接下来的Python爬虫学习中拥有一马平川的通畅。
Life is short, use Python. 这句在工业界经久不息流传的话,侧面也说明了Python学习起来是多么容易。对于初学Python的你,完全不用担心自己学不会。胆大心细,也就是:大胆地尝试,大胆地写代码,报错是很正常的;细心地写代码,避免各种由于缩紧、拼写、中英文字符混用之类的错误。这是一个Python程序员的基本素养。
然而Python的基础知识也不少,到底需要学习到什么程度,对于Python爬虫的课程才是足够的呢?这里,我们把爬虫课程需要掌握的Python基础知识进行了筛选,过滤掉了一些不必要的知识。主要需要掌握的知识已在下面的文档中列出,并以链接的方式给出。好好看一遍、实操一遍,便可开始服用接下来的课程。
此门课程使用的是Python3,在学习的过程中需要注意统一。
0. 基础语法
基础语法是学习语言中最容易被忽视的,但也是最重要的。它涵盖了整个Python编写中最细节的地方。所以学好这一节是为了以后更好地学习编程奠定基础。
1. 基本数据类型
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。
Number(数字)
Python3 支持 int、float、bool、complex(复数)。在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。像大多数语言一样,数值类型的赋值和计算都是很直观的。
String(字符串)
Python中的字符串用单引号(‘)或双引号(“)括起来,同时使用反斜杠“\”转义特殊字符。
List(列表)
List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号([])之间、用逗号分隔开的元素列表。
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号(())里,元素之间用逗号隔开。
Sets(集合)
集合(set)是一个无序不重复元素的序列。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典是一种映射类型,字典用”{ }”标识,它是一个无序的键(key) : 值(value)对集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
2. 条件控制
条件语句是通过一条或多条语句的判断执行结果(True或者False)来决定是否执行接下来代码块。if语句是一种最常见的控制流语句类型,它用于判断一个条件,如果为TRUE,则执行紧跟其后的代码块。
3. 循环语句
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。
Python中的循环语句有 for 和 while两种。
4. 迭代器/生成器
迭代是Python最强大的功能之一,是访问集合元素的一种方式。。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。
在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次执行 next()方法时从当前位置继续运行。
5. 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
6. 模块
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。
7. 输入输出
通常,一个程序都会有输入/输出,这样可以与用户进行交互。用户输入一些信息,你会对他输入的内容进行一些适当的操作,然后再输出给用户想要的结果。Python的输入/输出,我们可以用input进行输入,print进行输出,这些都是简单的控制台输入/输出,复杂的有处理文件等。
8.文件操作
读写文件是最常见的IO操作。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
9. 错误/异常
作为Python初学者,在刚学习Python编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍。
Python有两种错误很容易辨认:语法错误和异常。
10. 面向对象
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。
python如何安装第三方库
python的一大优势就在于python拥有强大的第三方库,通过这些第三方库可以快速的实现某些强大的功能,因此学会安装python的第三方库是使用python必备的一个技能。
阅读Python 安装 第三方库的安装技巧,学会如何快速安装python第三方库。
拓展阅读
在行业内颇有几年经验的程序员都不能保证自己是完全精通一门语言的,熟练Python基础知识补充材料可以让你很好的完成这门课程的学习,但对于有志于在这个行业闯出一番天地的你而言,还有更多材料等待你去阅读。下面推荐给你一些高质量的学习资料:
关注DC,获取更多学习资源
@1-2初识Python爬虫的更多相关文章
- 初识python爬虫框架Scrapy
Scrapy,按照其官网(https://scrapy.org/)上的解释:一个开源和协作式的框架,用快速.简单.可扩展的方式从网站提取所需的数据. 我们一开始上手爬虫的时候,接触的是urllib.r ...
- python 爬虫简介
初识Python爬虫 互联网 简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML.JS.CSS代码返回给浏览器,这些代码经过浏览器解析.渲染,将丰富多彩的网页呈现 ...
- 孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块
孤荷凌寒自学python第六十七天初步了解Python爬虫初识requests模块 (完整学习过程屏幕记录视频地址在文末) 从今天起开始正式学习Python的爬虫. 今天已经初步了解了两个主要的模块: ...
- 初识python 之 爬虫:使用正则表达式爬取“糗事百科 - 文字版”网页数据
初识python 之 爬虫:使用正则表达式爬取"古诗文"网页数据 的兄弟篇. 详细代码如下: #!/user/bin env python # author:Simple-Sir ...
- Python爬虫--初识爬虫
Python爬虫 一.爬虫的本质是什么? 模拟浏览器打开网页,获取网页中我们想要的那部分数据 浏览器打开网页的过程:当你在浏览器中输入地址后,经过DNS服务器找到服务器主机,向服务器发送一个请求,服务 ...
- 初识Python和使用Python爬虫
一.python基础知识了解: 1.特点: Python的语言特性: Python是一门具有强类型(即变量类型是强制要求的).动态性.隐式类型(不需要做变量声明).大小写敏感(var和VAR代表 ...
- Python开发【第一篇】:初识Python
初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
- Python开发【第二篇】:初识Python
Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...
- 《精通Python网络爬虫》|百度网盘免费下载|Python爬虫实战
<精通Python网络爬虫>|百度网盘免费下载|Python爬虫实战 提取码:7wr5 内容简介 为什么写这本书 网络爬虫其实很早就出现了,最开始网络爬虫主要应用在各种搜索引擎中.在搜索引 ...
随机推荐
- NCB之taxonomy系列
1.taxonomy之简介 生物分类学是研究生物系统的一种强有力的组织原则.遗传.共同遗传的同源性以及在确定功能时保护序列和结构,这些都是生物学的中心思想,直接关系到任何一组生物体的进化史.因此,分类 ...
- 04_web基础(七)之jsp
39.jsp与el表达式引入 JSP:Java Server Pages:Java的服务网页(Java动态网页):=========================================== ...
- SVN 不显示状态图标--解决方法
[SVN 不显示状态图标--解决方法] 在名字前面加空格, 三个六个空格随意: 参考:https://www.cnblogs.com/lzpong/p/6187366.html
- Spring整合EHCache框架
在Spring中使用缓存可以有效地避免不断地获取相同数据,重复地访问数据库,导致程序性能恶化. 在Spring中已经定义了缓存的CacheManager和Cache接口,只需要实例化便可使用. Spr ...
- css3 vw、vh属性详解,以及与%、rem的区别介绍
最近的项目需求,内嵌电视端显示页面,所以使用到了css3的属性:vw \ vh,遇到一些问题,记录下来 vw.vh是什么? 字面上可以简单理解为,vw (view width),vh(view hei ...
- 二叉树的深度优先遍历与广度优先遍历 [ C++ 实现 ]
深度优先搜索算法(Depth First Search),是搜索算法的一种.是沿着树的深度遍历树的节点,尽可能深的搜索树的分支. 当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点 ...
- Windows如何安装Android SDK
我们都知道App测试分为Android和IOS两种客户端,当我们测试Android版本的App的时候经常要安装Android环境,那么安装Android SDK 就是必不可少的,接下来我们就来看看如何 ...
- Hashed collections哈希集合
[定义] 有index的集合 [hash的原理] term for a situation when two different objects return the same hashcode: h ...
- mvc下添加 EntityFramework的引用
首先 打开工具-扩展和更新-联机-Visual Studio库,找到NuGet Package Manager 检查是否 安装,如果没有安装 先安装插件 安装成功后,右键点击‘引用’,如下图 然后 ...
- webpack(一) 安装使用 之css使用注意
在webpackDemo 文件夹中新建 style.css,index.html style.css 中将背景色设为红色. body{ background-color: red; } he'llWo ...