0 1

案例一

Python当中的面向对象的编程



python 将str转化成list python中str转list_Python

python 将str转化成list python中str转list_python list转str_02

陌生人,我也为你祝福,愿你有一个灿烂的前程,愿你有情人终成眷属,愿你在尘世获得幸福。



python 将str转化成list python中str转list_Python_03

                                                    引言


在我们之前大一那会儿学过的C语言以及Java语言当中,我们了解到C语言是纯面向过程的语言,最初接触C语言,懵懵懂懂,误打误撞,会写几个案例,当然,这些案例都与算法有关,最常用的几个就是:排序算法,冒泡排序,递归算法等等这些基础的算法,为大一那会儿可添加了不少乐趣,其中C指针啊,数组,函数,数据类型,循环,编译预处理这些个东西,对于刚接触编程的我来说,就像天书一样,本人提前申明,本人数学不是很好,所以,脑子转不过弯儿,所以,在面向过程的思想当中,很苦恼,毕竟面向过程体现的是思路,那会儿不怎么会,但是呢,经过不断的练习,熟能生巧,基础案例基本上已经掌握个七七八八,为后续的面向对象的思维方面打下了基础。

python 将str转化成list python中str转list_Python_04

好了,引言已结束,接下来,我们开始步入正题。

    我们今天所讲的案例,是Python的面向对象编程,本期将不会讲述关于Python的基础知识,后续内容我会继续跟进,关于Python的基础。今天所讲的案例,是关于Python的爬虫案例,我们会用面向对象的思想,向你讲授这个案例。具体实现步骤如下:


我们需要用到Python中的

requests库,这是Python中的一个第三方库,不属于Python中的标准模块,安装方法如下:在Windows的命令行中安装:Python环境默认自带

pip命令

pip install requests


导入模块:import requests

1.定义初始化方法,自动执行,准备URL地址

def __init__(self,name,pn):        # 定义请求头,进行浏览器伪装,告诉服务器你不是爬虫        self.headers = {            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}        #动态获取贴吧名称        self.url = 'https://tieba.baidu.com/f?kw={}&ie=utf-8&pn='.format(name)        #动态获取页数,实现自定义翻页        self.url_list = [self.url+str(x*50) for x in range(pn)]        #定义变量,用来保存贴吧名称          = name



2.定义网络请求方法,获取响应数据

def get_data(self):        #传入URL地址以及请求的头部信息        resp = requests.get(self.url,headers = self.headers)        #返回响应信息,decode()方法是将网页解析成字符串,而不是二进制        return resp.content.decode()



3.定义保存数据的方法

def save_data(self,data,index):        file_name =  + str(index) + '.html'        with open(file_name,'w',encoding='utf8') as f:           f.write(data)

4.定义入口方法,实现类里面各个函数的功能

def run(self):        #遍历URL列表取出不同页数的URL        for url in self.url_list:            index = self.url_list.index(url)            data  = self.get_data()            self.save_data(data,index) #定义主函数,先实例化对象,再调用其方法,完成方法功能 if __name__ == '__main__':    tieba = TieBa('武汉',2)    tieba.run()


明确代码思路1.我们要爬取某个网页的内容,获取想要的东西:

   首先:


           <1 准备数据源所在的网络地址(URL)


           <2 定义网络请求的方法,这边我们可以用Python的 Requests库


           <3 保存数据


2.具体的思路体现:


   <1. 伪装自己:headers参数


                   Python默认的请求头和我们浏览器的请求头不一样,我们不定义相当于裸奔


                     不去定义,大型网站的服务器可能会拒绝给数据,欺骗你


   <2      我们获取的数据不是一成不变得,而是去动态的获取,所以某些参数不能写死


       就用贴吧的数据来说


           我们要实现贴吧的自动翻页


           'https://tieba.baidu.com/f?kw=%E6%AD%A6%E6%B1%89&ie=utf-8&pn='


               pn参数不能写死


           pn参数:根据贴吧的翻页规则去发现规律,自定义写


           kw={} 可以用{}.format() 方法去自行填充


   <3  获取数据:


                       我们要注意网页的编码方式,进行相对应的解码


                   有两种方式:


                   1.    resp.text  直接转化成Str格式,但可能会有乱码,需要在其上一行代码指定其编码字符


                     resp.encoding='utf8'


                   2.    resp.content  将网页转化成二进制输出  解码需要加参数


                               resp.content.decode()  二进制转Str


                       实现自定义爬去贴吧,而不是指定死,只爬去这一个


                   'https://tieba.baidu.com/f?kw=%E6%AD%A6%E6%B1%89&ie=utf-8&pn=0'


                       kw={参数} 不能写死,我们需要去变动他


   <4 保存数据:


                       保存数据我们需要考虑如何保存更加有效,考虑到单个保存,我们需要去遍历数组的索引


                   用'XX吧0.html去命名',以此类推

好了,本期案例讲解完毕,大家有什么意见,我们可以私聊,欢迎各位前来叨扰

python 将str转化成list python中str转list_Python_05