Python面向对象跟Java的面向对象大同小异,这篇我们简单介绍一下Python面向对象。以下是小编为你整理的python编程从入门到实践源码
类(class)是通俗的说就是事物的属性和行为的抽象。下面我们定义个动物类,名称和体重是动物属性,动物的叫是动物行为(方法)。然后获取类的实例。
上面的代码有几个点需要说明一下:
(1) self: self是个形式参数,代表本类的实例(类似于Java的this关键字)通过self可以调用本类的属性和方法。
(2) __init__(self):初始化方法,类似java的构造方法
(3) shout(self): 类方法和普通方法的区别是类方法必须带一个名称为self的参数
[图片0]
创建对象python中没有new关键字,直接通过方法名参数列表,跟调用普通方法没什么区别。
访问和赋值类的属性
(1) 通过“.”类访问对象的属性和行为
(2) getattr(obj, name[, default]) : 访问对象的属性。
(3) 通过“=”号赋值
(4)setattr(obj,name,value) : 赋值对象属性,如果属性不存在,会创建一个新属性。
类的方法:
(1) 实例方法:第一个参数self,通过实例来访问
(2) 类方法:第一个参数cls代表当前的类,classmethod() 来创建类方法。类名和实例都可以访问。
(3) 静态方法:其实跟普通方法差不多,没有默认参数,类名和实例都可以调用。
int对象的创建方法
int对象的创建方法
1.通过内置语法规则创建
和我们平时看见的整数一样。
2.通过int函数创建
int函数是Python的内置函数,可以从字符串、浮点数(小数)等对象创建整数。
当然,如果使用不当,传入的字符串中不是整数,或者传入了不恰当的类型,就会引发错误。
我们可以看见,int函数要求传入一个数或者一个字符串。
常用的int对象操作运算
1.加减法
加减法的运算与数学中相同,对于我们来说,大数字运算中它们会提供更大便利。Python是比较高级的语言,所以支持负数运算。
Python中乘法用“*”表示,运算规则一样。
设定一个列表
比如:a = [123,456,789],b = 123,b in a (结果True)
解析:b是否被a包含
把b改为一个其他的数值,比如b = 1234
然后b in a,结果是False,因为a里面找不到b所指向的对象(1234)
需要注意,in后面的对象必须是元组、列表这些集合类型的对象
但是in前面的对象可以是任何类型的对象,如图2
对于字符串
比如:a = 'abcd','c' in a (结果True)
in还常用于循环
[图片1]
比如:a = [123,456,789]
for x in a:
print(x)
注:循环后面会详细讲(可以关注下,还有其他Python相关经验)
not in
与in刚刚好相反,in是False的话,not in就是True
开发环境搭建
首先安装python3 ,可以参考:/article/
安装好python3 后,如图 进入python环境验证python 的 urllib 库是否能正常使用,如没有提示错误则urllib 库能正常使用了。
其他操作系统的python的安装同理,具体可以搜索对应的安装方法。
然后安装爬虫开发所需的第三方库 BeautifulSoup 4.,可以参考:/article/
爬虫开发其实还要其他第三方开发库,这里选用BeautifulSoup 4。
最后安装python开发工具IDE。
urllib 的用途和用法
urllib 是python3 自带的操作URL 的库,用来模拟用户使用浏览器访问网页。
使用步骤:
1) 程序中导入urllib库的request 模块
from urllib import request
2) 请求URL,相当于浏览网页时右击然后选择 “显示网页源代码”
resp = (“此处填网址")
3)输出上一步请求获得的 “网页源代码”
print(().decode(“utf-8”))
一个获取网页源码的程序就完成了:
对以上第2点进一步优化模拟真实浏览器,
可以先查看浏览器访问网页时携带点header 信息,如图查看”User_Agent”信息,意思是使用什么版本的什么浏览器访问去访问网页,意思是告诉网页服务器这是一个浏览器而不是一个爬虫。有些网站就是根据是否携带”User_Agent”头信息去判断是否是一个爬虫来访问网站。
在第2点的程序基础上加上”User_Agent”头信息
(key,value)
BeautifulSoup 的使用
参考bs4 的官方文档,官方文档有很详细的入门基础教程例子可以参考。
通过BeautifulSoup 解析html,获得html 各元素的值,如图例子(html_doc 可以换成以上第3点或得的“网页源码”)。爬取获得html 各元素网络的资源然后通过存储和分析用。