《Python网络爬虫实战》正则表达式的简单使用

import re
ss ='I love you, do you?'
res = re.match(r'((\w)+(\W))+ ',ss)
print(res.group())


ping_as = 'Reply from 220.181.57.216: bytes = 32 time = 3ms TTL = 47'
res = re.search(r'(time = )(\d+\w+)+(.)+TTL', ping_as)
print(res.group(2))

值得注意的是,正则表达式中任意地方的空格都需要格外谨慎对待! 例如:上面代码中(\d+\w+),第二个‘+’后不能加空格,否则就会报错。

通过正则表达式解析出html中的信息,以下代码提取出百度首页的标题句

import re,requests
r = requests.get('https://www.baidu.com').content.decode('utf-8')
print(r)
pt = re.compile('(\<title\>)([\S\s]+)(\<\/title\>)') #编译正则表达式
print(pt.search(r).group(2))

 使用‘r’简化正则表达式中的转义字符‘\’

pt = re.compile(r'(<title>)([\S\s]+)(</title>)') #编译正则表达式
print(pt.search(r).group(2))

下面这个网址中详细介绍了BeautifulSoup的使用方法 https://cuiqingcai.com/1319.html

 以下是一些BeautifulSoup的实例

import re,requests
from bs4 import BeautifulSoup
r = requests.get('https://baike.baidu.com/item/%E7%BA%BD%E7%BA%A6/6230?fromtitle=%E7%BA%BD%E7%BA%A6%E5%B8%82&fromid=20261076&fr=aladdin')
# print(r)
bs = BeautifulSoup(r.content,"html.parser")
# print(bs)
print(bs.title)
print(bs.a.name)
#获取a标签的href属性值
print(bs.a.attrs.get('href'))
#更改a标签的href属性值
bs.a['href'] = "sss"
print(bs.a)
#删除a标签的某个属性
del bs.a['href']
print(bs.a)
#获取标签内部的文字
print(bs.a.string)
print(type(bs.a.string))

#查找所有的a标签
ass = bs.findAll('a')
print(ass)

#查找所有以a开头的标签
for tag in bs.findAll(re.compile("^h")):
    print(tag.name)

#查找多个标签  用中括号[]包含两个标签类型
print(bs.findAll(['p','a']))

#找到所有标签
for tag in bs.find_all(True):
    print("find_all(True) "+tag.name)

#查找href属性包含 "feedback" 字符的标签
ffe = bs.findAll(href=re.compile("feedback"))
print(ffe)

#过滤多个属性
sddf = bs.findAll(href=re.compile("feedback"), target='_blank')
print(sddf)

2.2节知识点结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值