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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python爬虫--解析网页几种方法之正则表达式相关的知识,希望对你有一定的参考价值。

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爬虫之解析库正则表达式

python3爬虫初探之正则表达式

Python爬虫之三种网页抓取方法性能比较

爬虫之数据解析,网页源码数据分析

python爬虫之Beautiful Soup库,基本使用以及提取页面信息

python爬虫之Beautiful Soup库,基本使用以及提取页面信息