码迷,mamicode.com
首页 > 编程语言 > 详细

python爬虫--解析网页几种方法之正则表达式

时间:2017-09-30 20:03:11      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:模式   表达式   邮箱   python   imp   匹配   检查   find   .so   

1、正则表达式

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

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

re.match函数

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

技术分享

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

结果:

(0, 3)
None
import re

line = "Cats are smarter than dogs"

matchObj = re.match( r(.*) are (.*?) .*, line)

if matchObj:
   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匹配整个字符串,直到找到一个匹配。

import re

line = "Cats are smarter than dogs";

matchObj = re.match( rdogs, line, re.M|re.I)
if matchObj:
   print ("match --> matchObj.group() : ", matchObj.group())
else:
   print ("No match!!")

matchObj = re.search( rdogs, line, re.M|re.I)
if matchObj:
   print ("search --> matchObj.group() : ", matchObj.group())
else:
   print ("No match!!")

结果:

No match!!
search --> matchObj.group() :  dogs

 

re.findall方法

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

import requests
import re

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=".*?".<strong>(.*?)</strong>,html)
print (title_list)
[‘新闻‘, ‘财经‘, ‘体育‘, ‘房产‘, ‘娱乐‘, ‘汽车‘, ‘时尚‘, ‘科技‘, ‘美食‘, ‘星座‘, ‘邮箱‘, ‘地图‘, ‘千帆‘, ‘畅游‘]

 

 

抓取搜狐的主标题。

技术分享

 




python爬虫--解析网页几种方法之正则表达式

标签:模式   表达式   邮箱   python   imp   匹配   检查   find   .so   

原文地址:http://www.cnblogs.com/leon507/p/7615431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!