python爬虫(1)——正则表达式
发布时间:2020-12-20 11:00:14 所属栏目:Python 来源:网络整理
导读:原子 原子是正则表达式中最基本的组成单位,每个正则表达式中至少要包含一个原子。 常见的原子类型: 普通字符作为原子 非打印字符作为原子 通用字符作为原子 原子表 #普通字符作为原子import restring="iloveyou"pat="ve"res=re.search(pat,string)print(re
原子原子是正则表达式中最基本的组成单位,每个正则表达式中至少要包含一个原子。 常见的原子类型:
#普通字符作为原子 import re string="iloveyou" pat="ve" res=re.search(pat,string) print(res) #非打印字符作为原子,如n t string='''hello world ''' pat="n" res=re.search(pat,string) print(res) #通用字符作为原子 ''' w 字母、数字、下划线 W 除字母、数字、下划线 d 十进制 D 除十进制 s 空白字符 S 除空白字符 ''' string='''hello world 123''' pat="dd" res=re.search(pat,string) print(res) #原子表 #[xyz]:从中任意取一个原子 #[^xyz]:除xyz的任意一个字符 string="iloveyou" pat="i[^love]o" res=re.search(pat,string) print(res) 元字符元字符是正则表达式中具有一些特殊含义的字符,比如重复N此前面的字符等。
模式修正符可以在不改变正则表达式的情况下,通过模式修正符改变正则表达式的含义,从而实现一些匹配结果的调整等功能。
用法: #模式修正符 string="Python" pat="pyt" res=re.search(pat,string,re.I) print(res) 贪婪模式与懒惰模式贪婪模式的核心点就是尽可能多的匹配,而懒惰模式是尽可能少的匹配。默认贪婪模式。 懒惰模式要加? #贪婪模式与懒惰模式 string="poythonyhjskjsa" pat1="p.*y"#贪婪模式 pat2="p.*?y"#懒惰模式,精准 res1=re.search(pat1,re.I) res2=re.search(pat2,re.I) print(res1) print(res2) 正则表达式函数
实例
简单爬虫的编写import urllib.request data=urllib.request.urlopen("http://edu.csdn.net").read() 提取网页的电话(QQ……)import urllib.request import re data=urllib.request.urlopen("https://edu.csdn.net/huiyiCourse/detail/1041").read().decode("utf-8") pat="<p> 电话:(d*?)</p>" res=re.compile(pat).findall(data) print(res[0]) 爬取豆瓣出版社import urllib.request import re data=urllib.request.urlopen("https://read.douban.com/provider/all").read().decode("utf-8") pat='<div class="name">(.*?)</div>' #加上圆括号后可以只显示括号里的内容 res=re.compile(pat).findall(data) with open("出版社","w") as fp: for i in range(len(res)): print(res[i]) fp.write(res[i]+'n') fp.close() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |