Python 3.x 通过文本而不是标记查找beautiful soup中的项目

Python 3.x 通过文本而不是标记查找beautiful soup中的项目,python-3.x,web-scraping,beautifulsoup,python-requests,Python 3.x,Web Scraping,Beautifulsoup,Python Requests,所以我试图通过从他们的维基百科页面上抓取某些位置的区域。以坎布里亚为例()我可以通过以下方式获得信息框: url = 'https://en.wikipedia.org/wiki/Cumbria' r = requests.get(url) soup = BeautifulSoup(r.content, 'lxml') value = soup.find('table', {"class": "infobox geography vcard"}) \ .find('tr'

所以我试图通过从他们的维基百科页面上抓取某些位置的区域。以坎布里亚为例()我可以通过以下方式获得信息框:

url = 'https://en.wikipedia.org/wiki/Cumbria'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
value = soup.find('table', {"class": "infobox geography vcard"}) \
            .find('tr', {"class":"mergedrow"}).text
但是,
信息框地理vcard
有多个子集,每个子集中都有一个


我想要的
区域
,我想知道我是否可以通过搜索“区域”而不是标记从
区域的子集中获取文本,因为在
信息框地理vcard下,其他所有内容都是无处不在的
你可以直接用
scope=row
搜索所有
th
。然后对它们进行迭代,查看哪些具有
区域
作为文本,并使用以获取下一个同级(这将是包含所需数据的
td

请注意,此表有2个
区域
条目,一个用于“礼仪县”,另一个用于“非都市县”,不管这意味着什么;)


谢谢你,我不知道如何找到下一个兄弟姐妹。非常有用!
ths = soup.find_all('th', {'scope': 'row'})

for th in ths:
    if th.text == 'Area':
        area = th.find_next_sibling().text
        print(area)

#  6,768 km2 (2,613 sq mi)
#  6,768 km2 (2,613 sq mi)