我正在撰寫我的第一個(不是 print("hello world") python 程式,但發現從輸出中提取我真正需要的內容時出現問題。我檢查了許多類似的主題,但它沒有按預期作業。
page = requests.get(
"https://www.oferty.net/statystyki/012022/mieszkania-sprzedaz-" cityChoose)
soup = BeautifulSoup(page.content, 'html.parser')
content = soup.find('div', {"class": "subtitle2"})
print(content)
我得到:
<div class="subtitle2">
<span>
<span>Warszawa</span> - ?rednia cena 1m2 w styczniu 2022 = 13 405 PLN </span>
</div>
如何選擇特定的文本使其看起來像那樣?
華沙 - ?rednia cena 1m2 w styczniu 2022 = 13 405 PLN
uj5u.com熱心網友回復:
然后就可以先找到span并拿到里面的所有文字,如下:
import requests
from bs4 import BeautifulSoup
page = requests.get("https://www.oferty.net/statystyki/012022/mieszkania-sprzedaz-" cityChoose)
soup = BeautifulSoup(page.content, 'html.parser')
content = soup.find('div', {"class": "subtitle2"})
result = content.find('span').text
print(result)
# Warszawa - ?rednia cena 1m2 w styczniu 2022 = 13 405 PLN
uj5u.com熱心網友回復:
# import requests
from bs4 import BeautifulSoup as bso
sample_content = """<html>
<head>MyApp</head>
<body>
<div >
<span>
<span>Warszawa</span> - ?rednia cena 1m2 w styczniu 2022 = 13 405 PLN </span>
</div>
</body>
</html>"""
soup = bso(sample_content, 'html.parser')
content = soup.find('div', {"class": "subtitle2"})
print(''.join([t.text for t in content.findChildren()]))
簡單的例子在這里
uj5u.com熱心網友回復:
感謝你們!我嘗試了您的解決方案,但由于某種原因沒有奏效。也許我做錯了什么,但通過將 .text 添加到列印命令找到了方法,如下所示:
page = requests.get(
"https://www.oferty.net/statystyki/012022/mieszkania-sprzedaz-" cityChoose)
soup = BeautifulSoup(page.content, 'html.parser')
content = soup.find('div', {"class": "subtitle2"})
print(content.text)
uj5u.com熱心網友回復:
有不同的方法 - 一種是.text直接呼叫找到的結果<div>,如果沒有其他標簽包含您不喜歡抓取的文本:
content = soup.find('div', {'class': 'subtitle2'}).text
print(content)
#Warszawa - ?rednia cena 1m2 w styczniu 2022 = 13 405 PLN
另一個是選擇更具體的<span>:
content = soup.find('div', {'class': 'subtitle2'}).find('span').text
print(content)
#Warszawa - ?rednia cena 1m2 w styczniu 2022 = 13 405 PLN
或者去CSS SELECTORS:
content = soup.select_one('div.subtitle2 span').text
print(content)
#Warszawa - ?rednia cena 1m2 w styczniu 2022 = 13 405 PLN
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/424257.html
