Python Web抓取-嵌套标签



我正试图从下面的页面获取信息

http://books.toscrape.com/

我想得到每本书的评级(星级(,我使用了下面的代码

import requests
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
response = requests.get(
'http://books.toscrape.com/')
if response.status_code == 200:
print('Requisição bem sucedida!')
linhas = soup.find_all(class_=re.compile("rating"))

但随之而来的是下面的

<p class="star-rating Three">
<i class="icon-star"></i>
<i class="icon-star"></i>
<i class="icon-star"></i>
<i class="icon-star"></i>
<i class="icon-star"></i>
</p>,

我做错了什么?

实际上类名包含星号值,所以我们可以使用attrs['class']mehtod或d['class'][1]提取也可以!

import requests
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
response = requests.get(
'http://books.toscrape.com/')
soup=BeautifulSoup(response.text,"html.parser")
data=soup.find_all("p",class_="star-rating")
for d in data:
print(d.attrs['class'][1])

输出:

Three
One
One
Four
..

最新更新