写CSS选择器时标签的class属性值中有空格的问题

1 问题描述

HTML代码片段为:

<div class="alert alert-warning">
  请至“随书下载”下载本书的示例程序。
</div>
<div class="book-intro readmore">
   本书通过正在学习机器学习的程序员绫乃和她朋友美绪的对话,结合回归和分类的具体问题,逐步讲解了机器学习中实用的数学基础知识。其中,重点讲解了容易成为学习绊脚石的数学公式和符号。同时,还通过实际的Python 编程讲解了数学公式的应用,进而加深读者对相关数学知识的理解。
      </div>

要想抓取<div class="book-intro readmore">...</div>标签中的文本,根据我写css选择器的经验,写为:

div.“book-intro readmore”

但是运行结果出错:
出错结果
看来,我想当然的解决方案行不通。

2 解决方案

标签的属性值中凡是出现空格的地方,在写CSS选择器的时候,都用.代替,即本例的CSS选择器应该写成:

'div.book-intro.readmore'

接下来给出完整的代码:

# iTuringScrape.py
# 2020-08-27

import requests
from bs4 import BeautifulSoup

url = "https://www.ituring.com.cn/book/2636"
req = requests.get(url)
bs = BeautifulSoup(req.text,features='html.parser')

sr = bs.select('div."book-intro readmore"')
#sr = bs.select('div.book-intro.readmore')
print(sr)
  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值