如何使用 BeautifulSoup 解析特定的 HTML 标签?
How to parse a specific HTML tag using BeautifulSoup?
我正在尝试对这个网站进行网络抓取:https://datausa.io/profile/university/cuny-city-college/
我的代码只检索第一个匹配的 div class 标签,这是学费,但我只想检索食宿费用。如何解析特定标签?
import requests
url = requests.get('https://datausa.io/profile/university/cuny-city-college/')
soup = BeautifulSoup(url.text, 'html.parser')
rb = soup.find('div',class_='stat-value')
print(rb.prettify)
你可以做什么 在 state-titel
上使用 find
方法并在其中添加特定文本以便它找到该标签,我们必须从中提取以前的标签所以使用 previous
方法就可以了!
import requests
url = requests.get('https://datausa.io/profile/university/cuny-city-college/')
soup = BeautifulSoup(url.text, 'html.parser')
rb = soup.find('div',class_='stat-title',text="Room and Board").find_previous()
print(rb.get_text())
输出:
,406
您可以使用 :has
、:-soup-contains
和相邻的同级组合符 (+) 来指定 stat-value
,紧邻的 stat-title
包含文本“Room and Board “
import requests
from bs4 import BeautifulSoup as bs
soup = bs(requests.get('https://datausa.io/profile/university/cuny-city-college/').text)
print(soup.select_one('.stat-value:has(+ .stat-title:-soup-contains("Room and Board"))').text)
我正在尝试对这个网站进行网络抓取:https://datausa.io/profile/university/cuny-city-college/
我的代码只检索第一个匹配的 div class 标签,这是学费,但我只想检索食宿费用。如何解析特定标签?
import requests
url = requests.get('https://datausa.io/profile/university/cuny-city-college/')
soup = BeautifulSoup(url.text, 'html.parser')
rb = soup.find('div',class_='stat-value')
print(rb.prettify)
你可以做什么 在 state-titel
上使用 find
方法并在其中添加特定文本以便它找到该标签,我们必须从中提取以前的标签所以使用 previous
方法就可以了!
import requests
url = requests.get('https://datausa.io/profile/university/cuny-city-college/')
soup = BeautifulSoup(url.text, 'html.parser')
rb = soup.find('div',class_='stat-title',text="Room and Board").find_previous()
print(rb.get_text())
输出:
,406
您可以使用 :has
、:-soup-contains
和相邻的同级组合符 (+) 来指定 stat-value
,紧邻的 stat-title
包含文本“Room and Board “
import requests
from bs4 import BeautifulSoup as bs
soup = bs(requests.get('https://datausa.io/profile/university/cuny-city-college/').text)
print(soup.select_one('.stat-value:has(+ .stat-title:-soup-contains("Room and Board"))').text)