1 回答

TA貢獻1817條經驗 獲得超14個贊
實際上,您所需的desired數據是通過JavaScript頁面加載動態加載的,因此requests包將無法JavaScript動態渲染。但我已經能夠找到script保存數據的標簽,然后將其加載到string中。JSON dictJSON
在這里你可以解析任何你想要的:)。
import requests
from bs4 import BeautifulSoup
import json
r = requests.get("https://www.comparis.ch/gesundheit/arzt/pathologie")
soup = BeautifulSoup(r.content, 'html.parser')
script = soup.find("script", {'id': '__NEXT_DATA__'}).text
data = json.loads(script)
print(data.keys()) # JSON Dict
dumper = json.dumps(data, indent=4)
print(dumper) # to see it in human readble format
就像是:
for item in data['props']['pageProps']['doctorResults']['doctorModels']:
print(item['name'])
輸出:
Mohamed Abdou
Dr. med. Heiner Adams
Dr. med. Franziska Aebersold
Prof. Dr. med. Adriano Aguzzi
Dr. med. Maria Ammann
Prosper Anani
Dr. med. Max Arnaboldi
Dr. med. Walter Arnold
Dr. med. Irena Baltisser
Dr. med. Fridolin Bannwart
Dr. med. Yara Banz
Dr. med. André Barghorn
Dr. Jessica Barizzi
Prof. Dr. med. Daniel Baumhoer
Audrey Baur Chaubert
Dr. med. Christian Georg Bayerl
Dr. med. Marc Beer
Dr. med. Sabina Berezowska
Dr. med. Steffen Bergelt
Dr. med. Barbara Elisabeth Berger-Denzler
- 1 回答
- 0 關注
- 201 瀏覽
添加回答
舉報