我正在嘗試使用 Python 中的 BeautifulSoup 抓取網站。所有資料都被攝取,包括我試圖存取的所有連結。但是,當我使用 .findAll() 函數時,它只會傳回我正在尋找的連結的一部分。也就是說只回傳後面xpath中的連結
/html/body/div[1]/div/div[2]/div/div[2]/div[1]
這會忽略中的鏈接 /html/body/div[1]/div/div[2]/div/div[2]/div[2] /html/body/div[1]/div/div[2]/div/div[2]/div[3] 等等
import requests from bs4 import BeautifulSoup url = "https://www.riksdagen.se/sv/ledamoter-och-partier/ledamoterna/" response = requests.get(url) content = BeautifulSoup(response.content, "html.parser") mp_pages = [] mps = content.findAll(attrs = {'class': 'sc-907102a3-0 sc-e6d2fd61-0 gOAsvA jBTDjv'}) for x in mps: mp_pages.append(x.get('href')) print(mp_pages)
我希望所有連結都附加到 mp_pages 列表中,但它只進入一個父級(以 A 開頭的連結),似乎停在最後一個子級,而不是繼續。
我見過類似的問題,其中答案是由於javascript而使用selenium,但由於所有連結都在內容中,所以這是沒有意義的。
您在頁面上看到的資料以 Json 形式儲存在
元素中。要解析它,您可以使用下一個範例:
列印: