Bootstrap

Python爬虫和数据可视化

Python基础知识

Python基础

变量及类型

  • 变量可以是任何的数据类型,在程序中用一个变量名表示

  • 变量名必须是大小写英文、数字和下划线(_)的组合,且不能以数字开头

  • image-20210526193936597

标识符和关键字

  • 什么是关键字

    python一些具有特殊功能的标示符

    不允许开发者自己定义和关键字相同的名字的标示符

  • 查看关键字:

import keyword
keyword.kwlist

格式化输出

age = 18
print("我的年纪是:%d 岁"%age)
# %s输出字符串  %d输出十进制整数
print("我的名字是%s,我的国籍是%s"%("小张","中国")) #用元组
print("aaa","bbb","ccc")#aaa bbb ccc
print("www","baidu","com",sep=",") #www.baidu.com
print("hello",end="")#不换行
print("python",end="\t")#以	结尾
print("world",end="\n") #以换行符结尾

输入

password = input("请输入密码:")
print("您刚刚输入的密码是:",passward)
image-20210526195224483

image-20210526195112080

image-20210526195504557

import导入包

image-20210526195838568

判断语句和循环语句

条件判断语句

image-20210526195644597

循环语句

image-20210526200003525
name="chengdu"
for x in name:
    print(x,end="\t")
#c	h	e	n	g	d	u
image-20210526201003327 image-20210526201134765

字符串、列表、元组、字典

字符串

Python的核心数据类型

image-20210526201910361
paragraph="""
		这是一个段落
		可以由多行组成
"""
my_str = "Jason said\"I like you\""  #转义字符

推荐使用双引号。

print(r"hello \nchengdu") #在字符串前面加r,表示直接显示原始字符串,不进行转义
#hello\nchengdu
字符串的常见操作
image-20210526203738725 image-20210526203822332 image-20210526203923809 image-20210526204014574

还有很多方法,可以使用时自行搜索

列表

常见操作
image-20210527112924734 image-20210528115957290
a = [1,2]
b = [3,4]
a.append(b)
print(a) # [1,2,[3,4]]

a.extend(b)
print(a) #[1,2,[3,4],3,4]
image-20210528170916125

元组

image-20210528171058213

新增操作类似于连接、新建

删除不是删除元组中的元素,而是删除了整个元组

image-20210528172112839

字典

image-20210528172146319

直接访问键,如果键值不存在会报错;如果使用dict.get("keyName"),找不到的话会默认返回None;dict.get("KeyName","Newvalue"),如果找不到键值,会返回一个新的值

常用操作
image-20210528173405906 image-20210528173447593

集合

image-20210528173611387 image-20210528173735142

小结

image-20210528173808240

函数

函数的概念

如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。

函数定义和调用

定义函数

函数定义的格式如下:

def 函数名():
    代码
调用函数

函数名()

函数参数

定义带有参数的函数

示例:

def add2num(a, b):
    c = a + b
    print c
调用带有参数的函数

示例:

add2num(11,22)
image-20210528174936380

全局变量和局部变量

什么是局部变量
image-20210528175219771
  • 局部变量,就是函数内部定义的变量
  • 不同的函数,可以定义相同名字的局部变量,但是各用个的不会产生影响
  • 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
什么是全局变量

如果一个变量,它既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量

image-20210528175457949
  • 定义在函数外面的变量叫做全局变量
  • 全局变量能够在所有的函数中进行访问
  • 如果在函数中修改全局变量,那么就需要使用global来进行声明,否则出错
  • 如果全局变量和局部变量重名,那么使用的是局部变量的

函数使用注意事项

image-20210528175646642 image-20210528175712202
调用函数
image-20210528175753793
作用域
image-20210603155334926

文件操作

文件,就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力

文件的打开与关闭

image-20210603161028211
f = open('test.txt','w') #打开文件
f.close()  #关闭文件
访问模式
image-20210603165813742

写数据

使用write()可以完成文件写入数据

  • 如果文件不存在那么创建,如果存在那么就先清空,然后写入数据

读数据

  1. read(num)方法,读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数。
image-20210603210710902
  1. readlines()方法,按照行的方式把整个文件中的内容进行一次读取,返回的是一个列表,其中每一行的数据为一个元素

  2. readline()方法,一次只读一行数据

文件的相关操作

有些时候,需要对文件进行重命名、删除等一些操作,python的os模块中都有这些功能

文件重命名

os模块中的rename()可以完成对文件的重命名操作

rename(需要修改的文件名,新的文件名)

删除文件

os模块中的remove()可以完成对文件的删除操作

remove(待删除的文件名)

创建文件夹
import os
os.mkdir("张三")
获取当前目录
import os
os.getcwd()
改变默认目录
import os
os.chdir("../")
获取目录列表
import os
os.listdir("./")
删除文件夹
import os
os.rmdir("张三")

错误与异常

异常是预料到的,可以针对进行处理的

try:
    xxxx
except Exception as e:
try:
    xxxxx
except Exception as e:
 	xxxxx
finally:
    xxxxx

还可以嵌套

Python爬虫

任务介绍

image-20210605142832039

爬虫初识

image-20210605144955036 image-20210605150802555 image-20210605151923422

基本流程

image-20210605152032353

准备工作

image-20210605152824836
分析页面
image-20210605173113241
编码规范
image-20210605173512798
引入模块
image-20210605204559604

获取数据

image-20210605205328319
urllib

http://httpbin.org/ 这个网站可以测试你的请求得到了什么相应

# -*- codeing = utf-8 -*-
# @File : testUrllib.py
# @Software: PyCharm
import urllib
;