我试着用漂亮的汤刮巨蟒的部分文字。举个例子:https://www.weisshaus.de/details/monkey-47-dry-gin-47-vol.-0-50l。
在这个页面中,他们在产品标题中添加酒精百分比,而我只想将酒精百分比添加到变量“酒精百分比”中。
我可以使用以下方法刮取产品名称:
try:
productnaam = getTextFromHTMLItem(soup.find('h1', {'class':'product--title'}))
except:
productnaam = ""其中函数getTextFromHTMLItem如下:
def getTextFromHTMLItem(HTMLItem):
try:
return HTMLItem.text
except:
return " "但我现在该如何提取酒精含量呢?
谢谢您的帮助:)
发布于 2022-08-15 09:10:19
您可以使用regex在标题中找到酒精的百分比,这是一种通用的方法:
\d+(?:\.\d+)?%请注意,如果标题中有一个以上的百分比,则必须找到更好的模式或按索引来决定。
import re
s = 'Monkey 47 Dry Gin 47% vol. 0,50l'
re.findall('\d+(?:\.\d+)?%',s)示例
在这种情况下,只有一个百分比,所以您可以使用:
from bs4 import BeautifulSoup
import requests, re
url = 'https://www.weisshaus.de/details/monkey-47-dry-gin-47-vol.-0-50l'
soup = BeautifulSoup(requests.get(url).text)
print(re.findall('\d+(?:\.\d+)?%',soup.h1.text)[-1])发布于 2022-08-15 09:23:11
要提取酒精百分比部分,还可以使用split()方法
from bs4 import BeautifulSoup
import requests
url = 'https://www.weisshaus.de/details/monkey-47-dry-gin-47-vol.-0-50l'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')
txt = soup.find('div', {'class':'product--title'}).h1
print(txt.text.split()[4])输出:
47%https://stackoverflow.com/questions/73358565
复制相似问题