Python爬虫学习笔记二(Re、正则表达式、保存数据到Excel表内 )

一、正则表达式(任何语言都可以使用)

二、Re库

1、search 查找

(1)创建模式对象时 

#正则表达式:字符串模式(判断字符串是否符合一定的标准)
import re

#创建模式对象
pat = re.compile("AA")  #此处的AA,是正则表达式,用来去验证其他的字符串

m = pat.search("CBA")   #search字符串是被校验的内容
print(m)
print("-"*30)

m = pat.search("ABNAA")
print(m)
print("-"*30)

m = pat.search("AABNCABAA")
print(m)
print("-"*30)

 运行结果:

【查找不到返回None;查找到返回目标字符串在被校验字符串中的位置;被校验字符串中若有多个目标字符串,则只返回第一个所在的位置(左闭右开)】

None
------------------------------
<re.Match object; span=(3, 5), match='AA'>
------------------------------
<re.Match object; span=(0, 2), match='AA'>
------------------------------

(2)没有模式对象 

#没有模式对象
m = re.search("asd","vasde")    #前面一个参数为模式对象(规则),后面一个参数为被校验对象
print(m)

运行结果:

<re.Match object; span=(1, 4), match='asd'>

2、findall 查找

#前面字符串是规则(正则表达式),后面字符串是被校验的字符串
print(re.findall("a","cdfasdfevag"))

#在后面一个字符串中找到A-Z的单个字符,以列表形式输出
print(re.findall("[A-Z]","ADCKsdCSK"))

#在后面一个字符串中找到A-Z的单个或多个字符,以列表形式输出
#正则表达式中,+ 表示字符一次或无限次扩展
print(re.findall("[A-Z]+","ADCKsdCSK"))

运行结果:

['a', 'a']
['A', 'D', 'C', 'K', 'C', 'S', 'K']
['ADCK', 'CSK']

3、sub 方法

#sub
#在第三个字符串中找到a,并且用A将所有的a替换掉
print(re.sub("a","A","savdaqw"))

运行结果:

sAvdAqw

 ***转义字符的问题

#建议在正则表达式中,对被比较的字符串前面加上r,这样就不用担心转义字符的问题了
a = r"\sdxs-\'"
print(a)

运行结果:

\sdxs-\'

 三、保存数据到Excel表

1、创建workbook对象 --> 创建工作表 --> 写入数据 --> 保存数据表(固定步骤)

import xlwt

workbook = xlwt.Workbook(encoding="utf-8")  #创建workbook对象
worksheet = workbook.add_sheet('sheet1')     #创建工作表

# 写入数据,第一个参数“行” 第二个参数“列” 第三个参数是写入的内容
worksheet.write(0,0,'hello')
workbook.save('student.xls')      #保存数据表

可见该文件夹(该程序所放的文件夹)中创建了一个XLS表格,名为student,表格中第一行第一列写入数据hello

2、在Excel表中输出九九乘法表

import xlwt

workbook = xlwt.Workbook(encoding="utf-8")  #创建workbook对象
worksheet = workbook.add_sheet('sheet1')     #创建工作表

a = 1
while a <= 9:
    i = 1
    b = 1
    while i <= a:
        worksheet.write(a-1, b-1, "%d * %d = %d"%(a,b,a*b))
        b += 1
        i += 1
    a += 1
workbook.save('student.xls')

运行结果:

【写入字符串的方法为:"%d * %d = %d"%(a,b,a*b)】

1 * 1 = 1
2 * 1 = 22 * 2 = 4
3 * 1 = 33 * 2 = 63 * 3 = 9
4 * 1 = 44 * 2 = 84 * 3 = 124 * 4 = 16
5 * 1 = 55 * 2 = 105 * 3 = 155 * 4 = 205 * 5 = 25
6 * 1 = 66 * 2 = 126 * 3 = 186 * 4 = 246 * 5 = 306 * 6 = 36
7 * 1 = 77 * 2 = 147 * 3 = 217 * 4 = 287 * 5 = 357 * 6 = 427 * 7 = 49
8 * 1 = 88 * 2 = 168 * 3 = 248 * 4 = 328 * 5 = 408 * 6 = 488 * 7 = 568 * 8 = 64
9 * 1 = 99 * 2 = 189 * 3 = 279 * 4 = 369 * 5 = 459 * 6 = 549 * 7 = 639 * 8 = 729 * 9 = 81
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值