python爬取网页表格数据匹配_python爬虫--解析网页几种方法之正则表达式

1、正则表达式

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

re 模块使 Python 语言拥有全部的正则表达式功能。

re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

importreprint(re.match('www', 'www.runoob.com').span()) #在起始位置匹配

print(re.match('com', 'www.runoob.com')) #不在起始位置匹配

结果:

(0, 3)

None

importre

line= "Cats are smarter than dogs"matchObj= re.match( r'(.*) are (.*?) .*', line)ifmatchObj:print ("matchObj.group() :", matchObj.group())print ("matchObj.group(1) :", matchObj.group(1))print ("matchObj.group(2) :", matchObj.group(2))else:print ("No match!!")

结果:

matchObj.group() : Cats are smarter than dogs

matchObj.group(1) : Cats

matchObj.group(2) : smarter

r'(.*) are (.*?) .*',r的意思为raw string,纯粹的字符串,group(0),是匹配正则表达式整体结果,group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分。

re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

importre

line= "Cats are smarter than dogs";

matchObj= re.match( r'dogs', line, re.M|re.I)ifmatchObj:print ("match --> matchObj.group() :", matchObj.group())else:print ("No match!!")

matchObj= re.search( r'dogs', line, re.M|re.I)ifmatchObj:print ("search --> matchObj.group() :", matchObj.group())else:print ("No match!!")

结果:

No match!!

search--> matchObj.group() : dogs

re.findall方法

findall能够找到所匹配的结果,并且以列表的形式返回。

importrequestsimportre

link= "http://www.sohu.com/"headers= {'User-Agent' : 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'}

r= requests.get(link, headers=headers)

html=r.text

title_list= re.findall('href=".*?".(.*?)',html)print (title_list)

['新闻', '财经', '体育', '房产', '娱乐', '汽车', '时尚', '科技', '美食', '星座', '邮箱', '地图', '千帆', '畅游']

抓取搜狐的主标题。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值