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

Python爬虫入门目录

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

基本示例

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’]

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注