Python第18课:网络爬虫及class类

Python第18课:网络爬虫及class类

时间 2019-01-31 上午10:00

主讲 刘培富

地点 四楼电教室


一、网络爬虫

网络爬虫是利用网络规则,自动获取网页信息的一种程序。换言之,网络爬虫就是代替人工,自动把网页上有价值的内容读出来,存起来。网络爬虫由于自动爬取数据,有选择地收集数据,积累的数据量越来越大,发挥的作用就越来越突出。所以,网络爬虫作为数据采集的一种方式,日益受到人们的重视。

利用python爬数据,可以通过两个包来实现,一个是被比喻为AK47的Scrapy,另一个被比喻为瑞士军刀的requests,下面,以requests为例,讲解爬取数据的方法。

import requests

url='http://www.163.com'

r=requests.get(url)

r.encoding='gb2312'

print(r.text)

以上,即爬到了163网站的首页源码。再经过字符串加工,提取其中有价值的内容。

requests包的功能,远远不止这些,他可以向网页POST用户和密码,模拟用户登陆,并保持session,深入爬取有价值的信息。requests包的功能非常强大,网络上有很多教程,建议大家搜索自学,在此,不再赘述。

注:requests可以通过Anaconda离线安装

二、Clsas类:

在程序开发中,类被频繁使用。类是一个十分重要的概念,学习类的创建、调用,是python的基本功。

什么是类?我的理解是,类是从具体的个例中抽象出来的、具有普遍性的一个虚拟概念。类与实例,是共性与个性的关系。或者说,类好像一个模具,一台机械,可以生产出很多具体的东西来。

下面,通过一些具体的例子,掌握类的创建与使用。

(一)创建一个类

#创建类

class abc(object):

#类的属性:

    x=11

    __y=22    #变量前面加__代表私有变量

    #类的方法:

    def __init__(self):    #初始化

a=1

        b=2

        print("init")

def mn(self):

print("mn")

return "ffff"

#创建一个类的对象

a=abc()

print(a.x)#调用x变量

#print(a.__y) 这是错误的,私有变量不可调用

#print(a.__init__()) 这是错误的,私有变量不可调用

a.mn()#执行mn()方法

print(a.mn())#提取mn()方法的运行结果

类的属性,又被称作特征,类的方法,又被称作动作。类就是特征和动作的同一体。创建一个对象,又被称作实例化。这样理解,也是不错的。

(二)创建一个子类

#创建类

class abc(object):

def __init__(self):

print("init")

p=1

    def mn(self):

print("mn")

return "ffff"

class abcd(abc):

def xy(self):

print("xy")

p=2

b=abcd()

b.mn()#子类没有找到mn方法,则到父类中找。

print(b.p)

父类和子类创建后,针对用户的调用,首先在本体类中寻找结果,如果找不到,则到父类中寻找(称为类的继承)。如果找到了,就不再到父类中寻找。所以,对于子类和父类共有的属性和方法,互不冲突,只存在优先问题。

pass是空语句,是为了保持程序结构的完整性。 pass 不做任何事情,一般用做占位语句。

(三)类的调用

class Door():

"门的类"

    def __init__(self,size,color,type):

"初始化门的数据"

        self.size = size

self.color = color

self.type = type

def open(self):

"门打开的方法"

        print("这个%s门打开了" %self.type)

def off(self):

"门关闭的方法"

        print("这个%s门关闭了" %self.type)

door1 = Door(16,'red','木门')#门的实例化1

door1.open()

door2 = Door(34,'white','铝合金')#门的实例化2

door2.off()

注意self.x变量的使用。

class ABC(object):

x ='x in ABC'

    def aa(self, x):

x ='x in aa'

        print('aa - x:', x)

print('self.x:', self.x)

t = ABC()

t.aa("")

可见,self.的变量,专指类本身的属性。

(四)类的多继承

一个子类,可以继承一个父类,也可以继承多个父类。

class D:

def bar(self):

print('D.bar')

class C(D):

def bar(self):

print('C.bar')

class B(D):

def bar(self):

print('B.bar')

class A(B, C):

def bar(self):

print('A.bar')

a = A()

a.bar()

执行bar方法时, 首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去D类中找,如果D类中么有,则继续去C类中找,如果还是未找到,则报错。

#所以,查找顺序:A本类 --> B父类1 --> D父类1的父类 --> C父类2

在上述查找bar方法的过程中,一旦找到,则寻找过程立即中断,便不会再继续找了。

Python的类如果继承了多个类,那么其寻找方法的方式有两种,分别是:深度优先广度优先

当类是经典类时,多继承情况下,会按照深度优先方式查找

当类是新式类时,多继承情况下,会按照广度优先方式查找

经典类和新式类,从字面上可以看出一个老一个新,新的必然包含了跟多的功能,也是之后推荐的写法,从写法上区分的话,如果当前类或者父类继承了object类,那么该类便是新式类,否则便是经典类


思考:


str(99),这里,str()是一个函数。

a.strip(),这里,strip()是一个类的方法。

类,是一个抽象的概念,使用时必须实例化。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容