1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
實(shí)際上,您所需的desired數(shù)據(jù)是通過(guò)JavaScript頁(yè)面加載動(dòng)態(tài)加載的,因此requests包將無(wú)法JavaScript動(dòng)態(tài)渲染。但我已經(jīng)能夠找到script保存數(shù)據(jù)的標(biāo)簽,然后將其加載到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 關(guān)注
- 196 瀏覽
添加回答
舉報(bào)