Python 解析美女汤上的人物名称

Python 解析美女汤上的人物名称,python,web-scraping,beautifulsoup,Python,Web Scraping,Beautifulsoup,这是我第一次发帖,所以请温柔一点。 我正在从trip advisor提取数据。这些评论是用这样一个图来解释的 <span class="ui_bubble_rating bubble_40"></span> 如你所见,结尾有一个“40”代表4颗星。同样的情况也发生在“20”(2颗星)等 如何获得“ui\u bubble\u评级bubble\u 40”? 提前谢谢你 我不确定这是否是最有效的方法,但我会这样做: tags = soup.find_all(class=r

这是我第一次发帖,所以请温柔一点。 我正在从trip advisor提取数据。这些评论是用这样一个图来解释的

<span class="ui_bubble_rating bubble_40"></span>

如你所见,结尾有一个“40”代表4颗星。同样的情况也发生在“20”(2颗星)等

如何获得“ui\u bubble\u评级bubble\u 40”?
提前谢谢你

我不确定这是否是最有效的方法,但我会这样做:

tags = soup.find_all(class=re.compile("bubble_\d\d"))
tags
变量将包含页面中与regex
bubble\d\d
匹配的每个标记。之后,您只需提取数字,如下所示:

stars = tags[0].split("_")[1]
如果您想让人觉得别致,可以使用列表理解从每个标记中提取数字:

stars = [tag.split("_")[1] for tag in tags]

我不知道你想搜集什么样的数据, 但是您可以像这样获得span标记(我测试了它,并在中留下了一些打印):

更通用的方法(刮除所有评级(泡泡[0-9]{2})):


希望这能回答您的问题

欢迎来到SO。你的问题不清楚。你所说的获得“ui\u bubble\u评级bubble\u 40”是什么意思?请考虑访问特别是我所说的“uBuBuffyLoad Buffely40”的字面意思,我是如何得到那个字符串的。我想把它附加到一个列表中,这样我就可以根据它的最终数字分配相应的值,但我不知道如何获取字符串本身。谢谢你们!我设法解决了我的问题。这是一个伟大的社区。谢谢你的帮助!
from urllib import urlopen
from bs4 import BeautifulSoup
import re

html = urlopen("YOUR_REVIEWS_URL")
bs1=BeautifulSoup(html, 'lxml')

for s in bs1.findAll("span", {"class":"ui_bubble_rating bubble_40"}):
        print(s)
toFind = re.compile("(bubble_[0-9]{2})+")
for s in bs1.findAll("span", {"class":toFind}):
        print(s)