php正则函数抓取网页连接(python·简介以及相关的经验技巧,文章约6916字,浏览量3464 )

优采云 发布时间: 2021-11-03 07:22

  php正则函数抓取网页连接(python·简介以及相关的经验技巧,文章约6916字,浏览量3464

)

  栏目:python·

  Introduction 本文文章主要介绍几种网页解析方法的正则表达式(示例代码)及相关经验技巧。 文章约6916字,346页浏览量,点赞数4,值得参考!

  1、正则表达式

  正则表达式是一种特殊的字符序列,它可以帮助您轻松检查字符串是否与某个模式匹配。

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

  重新匹配功能

  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.match 只匹配字符串的开头。如果字符串与开头的正则表达式不匹配,则匹配失败,函数返回None;而 re.search 匹配整个字符串,直到找到匹配项。

  import re

line = "Cats are smarter than dogs";

matchObj = re.match( r‘dogs‘, line, re.M|re.I)

if matchObj:

print ("match --> matchObj.group() : ", matchObj.group())

else:

print ("No match!!")

matchObj = re.search( r‘dogs‘, 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=".*?".(.*?)‘,html)

print (title_list)

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

  获取搜狐的主要标题。

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线