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)