python爬虫学习(一 认识基本的正则表达式)

import re

#re:用于提取字符串内容的模块

#1>创建正则对象; 2>匹配查找; 3>提取数据保存;

string =

"""
            <html>
                <div><a href='www.baidu.com'></a></div></div></div>
                </div><title>正则</title></div>
                <html><div><a href='www.baidu1.com'></a></div>
                </div></div></div><title>正则1</title></div>
                <html><div><a href='www.baidu2.com'></a>
                </div></div></div></div><title>正则2</title></div>
                <html><div><a href='www.baidu3.com'>
                </a></div></div></div></div><title>正则3</title></div>"""
#()是提取的一组数据  re.S可以将正则的搜索域不再是一行, 而是整个HTML字符串
pattern = re.compile(r"<a href='(.*?)'>.*?<title>(.*?)</title>"),re.S
#用正则匹配元素时. 注意双引号和单引号都要跟元码保持一致而且注意区分单双引号.
#.*?费贪婪匹配 
#.*贪婪匹配
#findall()返回是列表
res = re.findall(pattern, string)
#查出匹配的 string 结果符合 pattern 条件的所有元素
print(res)#查找单个数据:search():不考虑数据的位置. match():必须保证数据在目标字符串的 !!!!起始位置!!!
string = "a12345boooooobccccccb"
#a.*?b  a12345b
#a.*b   a12345boooooobccccccb
#费贪婪匹配匹配到第一个符合条件的就会返回,贪婪匹配会匹配到最后一个符合条件的.拿到更多数据,我们一般用非贪婪匹配



重点,正则表达式掌握这些基本能够应付常见问题,,注意findall返回的是一个列表啊,列表支持索引能够迭代,后期会经常用于比较复杂的爬虫应用.其中的两个参数!!!牢记(要么死,要么学)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值