Python爬虫基础包括HTTP协议、HTML、CSS和JavaScript语言基础、requests库的使用、Beautiful Soup库的使用、xpath和正则表达式的使用等。此外,还应该了解反爬虫机制和爬虫的一些常见问题及解决方法。

上一篇文章讲解了有关条件判断语句、循环语句等相关知识,本节将围绕元组、字典、函数和文件操作几个方面展开。

6、元组-Tuple

元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

6.1 元组定义

tup1=()     #空元组
tup2=(5)    #<class 'int'>  不是元组
tup2=(5,)   #<class 'tuple'>
tup3 = ('Google', 'Python', 1997, 2000)

6.2 元组元素切片

tup=(1,2,3)
print(tup[0])    #第一个元素     #output:  1
print(tup[-1])   #最后一个元素   #output:  3
print(tup[0:2])  #左闭右开[0,2) #output:  (1, 2)

6.3 元组元素增加(连接)

tup1 = (12,34,56)
tup2 = ("ab","cd","ef")
tup3 = tup1+tup2
print(tup3)          #(12, 34, 56, 'ab', 'cd', 'ef')

6.4 元组元素删除

tup1 = (12,34,56)
#del tup1[0]    #不允许删除单个元素
del tup1        #删除了整个元组变量

6.5 元组元素不能修改

tup1 = (12,34,56)
tup1[0] = 72  #报错 不能修改

7、字典-dict

字典使用键值对(key=>value)存储;键必须是唯一的,但值则不必。

7.1 字典定义

dict = {key1 : value1, key2 : value2 }
info = {"name":"简简","age":18}

7.2 字典访问

info = {"name":"简简","age":18}
print(info["name"])
print(info["age"])

#访问不存在键
print(info["sex"])               #直接访问不存在的键,会报错
print(info.get("sex"))           #使用get()方法,访问不存在的键,默认返回:none
print(info.get("sex","没有"))     #没有找到的时候,返回自定义值  #output: 没有

7.3 字典键值增加

info = {"name":"简简","age":18}
info["sex"]="man"               #新增sex
print(info)                     #output: {'name': '简简', 'age': 18, 'sex': 'man'}

7.4 字典键值删除

#del
info = {"name":"简简","age":18}
del info["name"]                #删除name键值对
print(info)                     #output: {'age': 18}

del info                        #删除整个字典
print(info)                     #output: NameError: name 'info' is not defined

#clear
info = {"name":"简简","age":18}
info.clear()                     #清空字典内键值对
print(info)                      #output: {}

7.5 字典键值修改

info = {"name":"简简","age":18}
info["age"]=20
print(info)

7.6 字典键值查找

info = {"name":"简简","age":18}
print(info.keys())               #得到所有的键     #output: dict_keys(['name', 'age'])
print(info.values())             #得到所有的值     #output: dict_values(['简简', 18])
print(info.items())              #得到所有的键值对 #output: dict_items([('name', '简简'), ('age', 18)])


#遍历所有的键
for key in info.keys():
    print(key)     #output: name age
    
#遍历所有的值
for value in info.values():
    print(value)     #output: 简简 18
    
#遍历所有的键值对
for key,value in info.items():
        print("(key=%s,value=%s)"%(key,value)) 
#output: (key=name,value=简简) (key=age,value=18)

8、函数

8.1 函数定义和使用

def printinfo(a,b): #函数定义
    c =a + b
    print(c)

printinfo(1,2)         #函数的使用

8.2 带返回值的函数

def info(a,b):
    c =a + b
    return c         #返回值

print(info(1,2))

8.3 返回多个值的函数

def divid(a,b):
    shang = a//b
    yushu = a%b
    return shang,yushu #多个返回值用逗号隔开

sh,yu = divid(5,2)     #需要用多个值来保存返回内容
print("商:%d 余数:%d"%(sh,yu))

9、文件操作

9.1 打开文件(open)

用法:对象=open(文件名,访问模式)

f = open('test.txt', 'w')

9.2 关闭文件(close)

Python爬虫基础之二_键值对

用法:对象.close()

f.close()

9.3 写数据(write)

用法:对象.write()

f=open("test.txt","w")  # 打开文件,w(写模式)-文件不存在就在当前路径给你新建一个
f.write("hello,world")  # write将字符写入文件
f.close()

9.4 读数据(read)

用法:对象.read()

f=open("test.txt","r")   #打开文件,r(读模式)
content=f.read(5)        #read读取5个字符
print(content)
f.close()

9.5 读一行数据(readline)

用法:对象.readline()

f = open('test.txt', 'r')
content = f.readline()
print("1:%s"%content)#读取一行
content = f.readline()
print("2:%s"%content)#再读下一行
f.close()

9.6 读多行数据(readlines)

用法:对象.readlines()

f=open("test.txt","r")   #打开文件,r(读模式)
content=f.readlines()    #readlines读取整个文件,以列表形式输出
print(content)           #输出形式为列表 #output: ['hello,world\n', 'hello,world']

#对列表进行处理,按序号一行一行输出
i=1
for temp in content:
    print("%d:%s" % (i, temp))
    i += 1  #output: 1:hello,world 2:hello,world
f.close()

9.7 OS模块

使用该模块必须先导入模块:

import os

os模块中的函数:

Python爬虫基础之二_键值对_02