Python爬虫基础之二

news2024/11/17 7:35:46

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)

用法:对象.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模块中的函数:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/463716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

stm32串口中断流程

NVIC简介 内嵌向量中断控制器:Nested Vectored Interrupt Controller (NVIC) 硬件发生中断后,相关电信号会触发内核跳转中断向量表查找中断函数, 中断向量名查于汇编文件startup_stm32xxx.s文件 从本质上说这里就是数字电路的组合形成的一系列行为&#xff0c;当相关中断的寄存…

一键汇总——高效电脑检索方案

文件检索和分类对于电脑内部的文件检索非常重要&#xff0c;因为它们可以帮助用户快速找到需要的文件。在电脑内部&#xff0c;文件通常被分类存储在不同的分区中&#xff0c;这有助于管理员更好地组织和查找文件。对于分区资源整合&#xff0c;以下是一些建议&#xff1a; 了…

大好河山集团董事长黄国林受邀出席2023中国好公司高峰论坛暨产学研合作峰会

大好河山集团董事长黄国林受邀出席2023中国好公司高峰论坛暨产学研合作峰会 本网消息 2023年4月19日&#xff0c;由中国智慧工程研究会、华夏商邦俱乐部、中国流通研究院共同主办&#xff0c;中国品牌发展网联合主办的“2023中国好公司高峰论坛暨产学研合作峰会”在福州福清举…

应急照明系统在民用建筑的设计应用与产品选型

【摘要】应急照明分为备用照明、安全照明及疏散照明。文章介绍了应急照明系统的设计、灯具选择、灯具布置、配电等要求。并结合实例进行疏散照明的计算&#xff0c;以指导应急照明系统的设计与应用。 【关键词】照度&#xff1b;光通量&#xff1b;消防应急灯具&#xff1b;A型…

【Linux】解决切换用户出现bash-4.2$问题创建普通用户并设置密码、授权

【问题描述】 linux中创建了一个wxh用户&#xff0c;然后使用su命令切换用户后&#xff0c;终端提示符显示成“bash-4.2$”而不是[rootlocalhost wxh]#&#xff0c;导致ll等命令无法执行。 [rootlocalhost xhh]# su wxh bash-4.2$ ll bash: ll: 未找到命令 【原因】 没有在hom…

13种权重的计算方法

权重计算方法有很多种&#xff0c;不同的方法有不同的特点和适用情况。AHP层次分析法和熵值法在权重计算中属于比较常用的方法。除此之外&#xff0c;还有一些与权重计算相关的方法&#xff0c;今天一文总结了13种与权重计算相关的方法&#xff0c;大家可以对比选择使用。 一、…

【001-Java基础练习】-适合初学者的练习

用于巩固java基础知识&#xff0c;初学者多练多敲&#xff0c;熟悉代码&#xff0c;熟悉语法就ok。 练习1、从控制台获取Java、ps、HTML三门课程的成绩&#xff0c;计算总分和平均分&#xff08;平均分保留2位小数&#xff0c;要求四舍五入&#xff09;&#xff0c;输出总分和…

OpenAI最新官方ChatGPT聊天插件接口《插件部署上生产》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(五)(附源码)

Plugins in production 插件部署上生产 前言Rate limits 速率限制Updating your plugin 更新您的插件Plugin termsDomain verification and security 域验证和安全性Defining the plugins root domain 定义插件的根域Manifest validation 清单验证Resolving the API spec 解析A…

【小程序】input输入双向数据绑定

小程序中&#xff0c;input标签中的数据为单向绑定&#xff1a; <inputtype"number"bindinput"inputRealmoney"value"{{ amount }}"placeholder"请输入金额" />如上代码&#xff0c;我们绑定了输入框的数据amount&#xff0c;并…

前端后端实现防盗链

防盗链&#xff08;Referer Header&#xff09;是指在网页中嵌入的外部资源&#xff08;如图片、音视频等&#xff09;被非法使用或盗链的现象。为了避免这种情况的发生&#xff0c;我们可以通过前端和后端技术来防止盗链。 前端防盗链 前端防盗链可以通过在页面中添加 JavaSc…

在f1tenth仿真中如何实现更快速的跑圈-曲线分析篇

本文使用蓝桥云课&#xff0c;即开即用&#xff0c;如果配置第三方课程资源&#xff0c;通常也在10分钟内完成。 效果如下&#xff1a; 全部参考资料如下&#xff1a; 蓝桥ROS之f1tenth案例学习与调试&#xff08;失败&#xff09; 蓝桥ROS之f1tenth案例学习与调试&#xff…

Maven 三种archetype说明合集

Maven 三种archetype说明合集【转载】_maven-archetype-quickstart_太阳神LoveU的博客-CSDN博客 新建Maven project项目时&#xff0c;需要选择archetype。 那么&#xff0c;什么是archetype&#xff1f; archetype的意思就是模板原型的意思&#xff0c;原型是一个Maven项目模…

【ant-design-vue】树形表格数据,实现父子关联选择

ant-design-vue 版本1.7.8 ,2.2.8 这两个版本都是不支持树形表格数据&#xff0c;实现父子关联选择 只能自己写方法来实现父子关联选择 <template><a-card><a-table :columns"columnsA" :data-source"tabData" :customRow"tableClic…

Redis数据库和SpringBoot的故事|这一篇就够了(超详细)

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;老茶icon &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;计…

路由功能开启

开启路由 转发&#xff0c;为当前实验环境提供路由功能 RouterSrv 1.安装路由和远程访问 选中 路由 和 DirectAccess 和 VPN 2.配置 启用 路由功能 工具 ---- 路由和远程访问----右键 配置启用路由和远程访问 3.测试 找两个在不同网段的 服务端 是否能ping通

基于趋动云部署复旦大学MOSS大模型

首先新建项目&#xff1a; MOSS部署项目&#xff0c;然后选择镜像&#xff0c;直接用官方的镜像就可以。 之后选择数据集&#xff1a; 公开数据集中&#xff0c;MOSS_复旦大学_superx 这个数据集就是了&#xff0c;大小31G多 完成选择后&#xff1a; 点击创建&#xff0c;…

【c语言】enum枚举类型的定义格式 | 基本用法

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

Nuxt3从零到发布

官网地址&#xff1a;Nuxt3 一&#xff1a;创建项目 Node.js -或更新版本v16.10.0 npx nuxi init nuxt-app 如果出现下面错误&#xff0c;请修改DNS为114.114,114,114 创建完成后在 Visual Studio Code 中打开项目文件夹&#xff1a; 二&#xff1a;安装依赖 npm install …

Newegg 新蛋供应链管理良策——EDI

美国新蛋网Newegg平台于2001年在美国洛杉矶创立&#xff0c;服务版图遍及全球52国&#xff0c;全球员工 2200人以上&#xff0c;用户总数达3600万、每月访客数达1700万&#xff0c;持续赢得广大网购用户喜爱&#xff0c;被Forbes与Computer Shopper等多家权威媒体评选为最佳购物…

类的几种实例化方法 new clone 反射 序列化 反序列化

目录 ①用类的new &#xff08;&#xff09;创建 ②用clone方法创建&#xff0c; 需要类实现 Cloneable 接口 ③通过反射机制创建 ④将一个对象实例化后&#xff0c;进行序列化&#xff0c;再反序列化 ①用类的new &#xff08;&#xff09;创建 User user new User(); ②…