我是一名Python初学者,在使用网站正则表达式 – 简介 | 菜鸟教程学习正则表达式。
在学习的过程中突发奇想,想着使用找规律的方式将学习的目录给导出来,但由于水平实在有限,所以只能采用手动的方式进行操作,具体操作步骤如下:
1.先将网站的源代码复制近一个sourcetxt文件,然后找到目录的开头和结尾。
2.开头为<div class="sidebar-box gallery-list">,结束为<div class="col middle-column">
3.代码如下:
import re
f=open('F:\Python\source.txt','r',encoding='UTF-8')
source=f.read()
every_reply=re.findall('sidebar-box gallery-list(.*?)col middle-column',source,re.S)
print(every_reply) #便于查找,可以注释掉
for reply in every_reply:
title=re.findall('title="(.*?)"',reply,re.S)
url=re.findall('href="(.*?)"',reply,re.S)
for j in range(len(title)):
print('Nmae:{} Url:{}'.format(title[j],url[j]))
输出结果如下:
Nmae:正则表达式 – 教程 Url:/regexp/regexp-tutorial.html
Nmae:正则表达式 – 简介 Url:/regexp/regexp-intro.html
Nmae:正则表达式 – 语法 Url:/regexp/regexp-syntax.html
Nmae:正则表达式 - 修饰符 Url:/regexp/regexp-flags.html
Nmae:正则表达式 – 元字符 Url:/regexp/regexp-metachar.html
Nmae:正则表达式 – 运算符优先级 Url:/regexp/regexp-operator.html
Nmae:正则表达式 – 匹配规则 Url:/regexp/regexp-rule.html
Nmae:正则表达式 – 示例 Url:/regexp/regexp-example.html
Nmae:正则表达式在线测试 Url:http://c.runoob.com/front-end/854
我发现在名称中出现了"–"的乱码,所以想使用re.sub进行替换,代码如下:
import re
f=open('F:\Python\source.txt','r',encoding='UTF-8')
source=f.read()
every_reply=re.findall('sidebar-box gallery-list(.*?)col middle-column',source,re.S)
print(every_reply) #便于查找,可以注释掉
for reply in every_reply:
title=re.findall('title="(.*?)"',reply,re.S)
url=re.findall('href="(.*?)"',reply,re.S)
for i in range(len(title)):
re.sub('表达式 .*? ','',title[i])
for j in range(len(title)):
print('Nmae:{} Url:{}'.format(title[j],url[j]))
但是发现输出结果保持不变,请问一下问题出现在哪里?应该如何解决??