簡體   English   中英

如何使用 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())

Output:

$15,406

您可以使用:has:-soup-contains和相鄰的同級組合符 (+) 來指定stat-value以及包含文本“Room and Board”的緊鄰stat-title

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM