Python爬虫(一)-正则表达式基础

文章首发及后续更新:http://mwhls.top/453.html
新的更新内容请到mwhls.top查看。
如果没有图片请到上方的文章首发页面查看。

这块内容并没有详细的正则表达式内容,作者知识储备不足是其一,项目中用不上是其二。

基本示例
import re                                #引入re正则表达式库
matching_rule = re.compile("asd")        #定义正则表达式规则
search_result = matching_rule.findall("asd, asdasd, and asdasdasd in a string waiting for searching")    #利用规则搜索字符串
print(search_result)                     #输出结果

输出结果:['asd', 'asd', 'asd', 'asd', 'asd', 'asd']
匹配规则

函数:
规则变量名 = re.compile("规则内容")

正则表达式规则参考:十四个常用正则表达式

规则内容举例

a = re.compile("a")        //匹配所有a字符
b = re.compile("a+")       //匹配所有a, aa, aaa, aaaa...字符串
c = re.compile("asd*")     //匹配所有as, asd, asdd, asddd...字符串
d = re.compile("(asd)+")   //匹配所有asd, asdasd, asdasdasd...字符串
e = re.compile('"')        //匹配双引号"

f = re.compile('"(.*)"')   //匹配所有双引号中的字符串,如字符串"asd",则匹配asd

以规则 f 为基础搜索,假设要搜索超链接的连接,通过html的语法可以知道,超链接是使用
<a href = "http://mwhls.top">首页<a/>
的格式写的,其中,超链接的内容位于 href = "这里"
那么,匹配规则为
rule = re.compile('href = "(.*)"')
这里要注意,规则外是用单引号 ' ,这是因为要匹配的文字中含有双引号 "
通过这个规则,匹配结果是
http://mwhls.top

此外,为了防止转义字符的影响,一般使用 r"" ,而不是 ""
print(r"\\aa") 输出结果为\\aa
print("\\aa") 输出结果为\aa

搜索函数

函数:
规则变量名.findall(待匹配字符串)

findall匹配所有符合规则的字符

findall最终会返回一个列表,例如

web_data = "<a href = "http://mwhls.top">首页<a/>"
rule = re.compile('href = "(.*)"')
result = rule.findall(web_data)
print(result)

会返回一个只有一个元素的列表
['http://mwhls.top']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值