2021-04-29

一、Tag对象对应于原始文档中的XML或HTML标签
Tag有很多方法和属性, 可用 遍历文档树 和 搜索文档树 以及获取标签内容

Tag 对象常见属性
name: 获取标签名称
attrs: 获取标签所有属性的键和值
text: 获取标签的文本字符串

一个案例:从疫情首页提取各国最新疫情数据
思路:

  1. 导入相关模块
import requests
from bs4 import BeautifulSoup
  1. 发送请求, 获取疫情首页内容
response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia')
home_page = response.content.decode()
print(home_page)

在这里插入图片描述
得到了想要的内容
进一步获得想要的数据,就要根据标签内容来指定文本
比如查找美国,可以得到它的标签是getListByCountryTypeService2true

  1. 使用BeautifulSoup提取疫情数据
soup = BeautifulSoup(home_page, 'lxml')
script = soup.find(id='getListByCountryTypeService2true')
text = script.text
print(text)

在这里插入图片描述
成功

二、正则表达式
概念:正则表达式(regular expression) 是一种字符串匹配的模式(pattern)
作用:
1)检查一个字符串中是否含有某子串
2)替换匹配的子串
3)提取某字符串中匹配的子串。这是爬虫中使用最多的功能

常见语法:
1.
1)一般字符
匹配 […] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。
2)点号“.”字符,匹配任意(除换行符\n之外)的字符,在DOALL模式中也能匹配换行符,比如abc→a.c
3)转义字符\,将后面的字符改变意思,比如a.c→a.c,有时想要找的内容里面包含通配符,需要转换成普通字符,就需要用到
如果字符串中有字符* 需要匹配,可以使用反斜线+星号的方式或字符集[星号]:a\c→a\c
4)字符集(字符类),表示区间

预定义字符集
\d: 匹配一个数字字符。等价于 [0-9]。

\D: 匹配一个非数字字符。等价于 [^0-9]。

\w: 匹配字母、数字、下划线。等价于’[A-Za-z0-9_]’。

\W: 匹配非字母、数字、下划线。等价于 ‘[^A-Za-z0-9_]’。

\s: 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

\S: 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值