Python 解析美女汤上的人物名称
这是我第一次发帖,所以请温柔一点。 我正在从trip advisor提取数据。这些评论是用这样一个图来解释的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
<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
变量将包含页面中与regexbubble\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)