我正在使用beautifulSoup并尝试仅从merriam-webster中抓取单词的第一个定义(非常冷),但同时也抓取了第二行(一个句子)。这是我的代码。 附注:我只想要“非常冷”的部分。输出中不应包含“穿上夹克...。”。请有人帮忙。
git_branch
答案 0 :(得分:0)
Merriam-Webster构建页面的方式有点奇怪,但是您可以找到定义之前的<strong>
标签,抓住下一个同级并像这样去除所有空白:
>>> tag.find('strong').next_sibling.strip()
u'very cold'
答案 1 :(得分:0)
通过类选择是CSS选择器匹配的第二种更快的方法。使用select_one仅返回第一个匹配项,使用next_sibling将您带到所需的节点
import requests
from bs4 import BeautifulSoup as bs
r = requests.get('https://www.merriam-webster.com/dictionary/freezing')
soup = bs(r.content, 'lxml')
print(soup.select_one('.mw_t_bc').next_sibling.strip())