python爬虫基础

python爬虫大纲

python基础

一.python环境安装

点我学习python环境的安装

二.pip

点我学习pip
scrapy是爬虫的框架,想要使用必须放在python的环境中
使用pip指令提供了对python包的查找 下载 安装 卸载等功能

修改pip下载源

pip install 包名 -i 国内源地址

三.运行python文件

1.终端运行
win+r+cmd
一般不使用 无法保存 关闭终端窗口便消失

  • 输入python
    • 退出:
      exit()
      ctrl+z ==> enter
  • 输入ipython
    跟python的区别是有高亮显示

2.pycharm运行

3.vscode运行

四.注释

1.注释

在我们工作编码的过程中,如果一段代码的逻辑比较复杂,不是特别容易理解,可以适当的添加注释,以辅助自己或者其他编码人员解读代码。

2.注释的分类

单行注释以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用。
多行注释以 ‘’’ 开始,并以 ‘’’ 结束,我们称之为多行注释

单行注释
 # #开头右边的都是注释,解析器会忽略注释
print('hello world') #我的作用是在控制台输出hello world
多行注释
以 ''' 开始,并以 ''' 结束,我们称之为多行注释。

五.变量

1.变量类型

这是一个变量类型大纲

number,bool,string,不做介绍
与c++区别是number中没有long和double
因为long类型是python2中的内容
在爬虫的使用中complex一般不使用
字符串中必须使用单引号或者双引号

1.1string(字符串)

单引号和双引号之间可嵌套
单引号嵌套双引号,双引号嵌套单引号是不可行的
因为字符串是进行就近匹配

1.2列表_元组_字典

# list 列表
# 应用场景 :当获取到很多个数据的时候,那么我们可以将他们存储到列表中 然后使用列表访问
name_list=['这是一个','测试']
print(name_list)

# tuple 元组
age_tuple=(18,19,20,21)
print(age_tuple)

# dict 字典
# 应用场景 : scrapy框架使用
# 格式 : 变量名字 ={key:value,key1:value1}
person ={'name':'张三','age':18}
print(person)

2.查看数据类型

在爬取数据时无法保证爬取的数据是哪种类型,这时候我们就需要判断数据类型
type方法判断变量的数据类型

格式:type(变量)

六.标识符和关键字

1.标识符由字母,数字,下划线构成,且开头不能是数字
2.严格使用大小写
3.不能使用关键字

1.命名规范

  • 小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,
    例如:myName、aDog
  • 大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:
    FirstName、LastName.
    还有一种命名法是用下划线“_”来连接所有的单词,比如send_buf.

2.关键字

一些具有特殊功能的标识符,这就是所谓的关键字。
关键字,已经被python官方使用了,所以不允许开发者自己定义和关键字相同名字的标识符。

七.类型转换

1.转换为整型

将浮点数转换成整数
将会返回小数点前的数据
print(int(123.78))
输出123

print(int(True)) # 1 布尔值True转换成为整数是 1
print(int(False)) # 0 布尔值False转换成为整数是 0

# 以下两种情况将会转换失败
123.456 和 12ab 字符串,都包含非法字符,不能被转换成为整数,会报错
print(int("123.456"))
print(int("12ab"))

2.转换为浮点型

a = 666
print(a)
print(type(a))

b = float(a)
print(b)
print(type(b))


输出
666
<class 'int'>
666.0
<class 'float'>

3.转换为字符型

# 强制类型转换为字符串的方法是str()

4.转换为布尔型

如果对非0的整数(int 包含正数和负数)进行bool类型的转换 那么就全都是True
将浮点数转换为bool类型的数据的时候  正的浮点数和负的浮点数的结果是true
只要字符串中有内容 那么在强制类型转换为bool的时候 那么就返回True
只要列表中有数据 那么强制类型转换为bool的时候 就返回True
只要元组中有数据 那么强制类型转换为bool的时候 就会返回True
只要字典中有内容 那么在强制类型转换为bool的时候 就会返回True

# 什么情况下是False
print(bool(0))
print(bool(0.0))
print(bool(''))
print(bool(""))
print(bool([]))
print(bool(()))
print(bool({}))

八.运算符

1.算术运算符

这只是一个图片
注意:混合运算时,优先级顺序为:** 高于 * / % // 高于 + -,为了避免歧义,建议使用 () 来处理运算符优先级。 并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算

算术运算符在字符串中的使用

  • 如果是两个字符串做加法运算,会直接把这两个字符串拼接成一个字符串。
In [1]: str1 ='hello'
In [2]: str2 = 'world'
In [3]: str1+str2
Out[3]: 'helloworld'
In [4]
  • 如果是数字和字符串做加法运算,会直接报错。
In [1]: str1 = 'hello'
In [2]: a = 2
In [3]: a+str1
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
TypeError Traceback (most recent call last)
<ipython‐input3‐993727a2aa69> in <module>
‐‐‐‐> 1 a+str1
TypeError: unsupported operand type(s) for +: 'int' and 'str'

可以通过字符串相加来解决

#在python中 +两端都是字符串才能进行加法运算

e='123'
f=456
print(e+str(f))#使用字符串转换
  • 如果是数字和字符串做乘法运算,会将这个字符串重复多次。
In [4]: str1 = 'hello'
In [5]: str1*10
Out[5]: 'hellohellohellohellohellohellohellohellohellohello'

2.赋值运算符

运算符描述实例
=赋值运算符把 = 号右边的结果 赋给 左边的变量,如 num = 1 + 2 * 3,结果num的值为7
# 单个变量赋值
>>> num = 10
>>> num
10
# 同时为多个变量赋值(使用等号连接)
>>> a = b = 4
>>> a
4
>>> b
4
>>>
# 多个变量赋值(使用逗号分隔)
>>> num1, f1, str1 = 100, 3.14, "hello"
>>> num1
100
>>> f1
3.14
>>> str1
"hello

3.复合赋值运算符

在这里插入图片描述

4.比较运算符

在这里插入图片描述

5.逻辑运算符

在这里插入图片描述

九.流程控制语句

1.if判断语句

if 要判断的条件:
条件成立时,要做的事情
age = 30
if age >= 18:
	print("我已经成年了")
输出:我已经成年了

注意:代码的缩进为一个tab键,或者4个空格,没有缩进则会进行报错

2.if else 语句

if 条件:
	满足条件时的操作
else:
	不满足条件时的操作

例如

age = 18
if age >= 18:
	print("我可以去红浪漫了")
else:
	print("未成年,不允许去"

3.elif 语句

if xxx1:
	事情1
elif xxx2:
	事情2
elif xxx3:
	事情3
score = 77
if score>=90:
	print('本次考试,等级为A')
elif score>=80:
	print('本次考试,等级为B')
elif score>=70:
	print('本次考试,等级为C')
elif score>=60:
	print('本次考试,等级为D')
elif score<60:
	print('本次考试,等级为E')

4.for循环

for 临时变量 in 列表或者字符串等可迭代对象:
	循环满足条件时执行的代码
	

for循环的使用

  • 遍历字符串:
for s in "hello":
	print(s)
  • 打印数字
for i in range(5):
	print(i)

十.字符串高级

# - 获取长度:len                     len函数可以获取字符串的长度。
# - 查找内容:find                    查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,如果不存在,则返回-1.
# - 判断:startswith,endswith        判断字符串是不是以谁谁谁开头/结尾
# - 计算出现次数:count                返回 str在start和end之间 在 mystr里面出现的次数
# - 替换内容:replace                 替换字符串中指定的内容,如果指定次数count,则替换不会超过count次。
# - 切割字符串:split                  通过参数的内容切割字符串
# - 修改大小写:upper,lower           将字符串中的大小写互换
# -  空格处理:strip                   去空格
# - 字符串拼接:join                   字符串拼接

s='china'
print(len(s))#长度

print(s.find('a'))#查找

print(s.startswith('c'))
print(s.endswith('a')) #判断字符串是不是以谁谁谁开头/结尾

s3 = 'aaabb'
print(s3.count('b'))#返回b在字符串的出现次数

print(s3.replace('a','d'))#替换字符串中指定的内容

s5 = '1#2#3#4'
print(s5.split('#'))#通过参数的内容切割字符串

s8 = '   a   '
print(len(s8))
print(len(s8.strip()))#	去除空格

  • 32
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值