勤学思培训网GEZYDK
  • 终于理解python编程从入门到实践源码

    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 各元素网络的资源然后通过存储和分析用。