搜尋

首頁  >  問答  >  主體

BeautifulSoup 攝取所有數據,但 .findAll() 僅傳回一個父級的鏈接

我正在嘗試使用 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,但由於所有連結都在內容中,所以這是沒有意義的。

P粉654894952P粉654894952439 天前432

全部回覆(1)我來回復

  • P粉553428780

    P粉5534287802023-09-15 11:25:57

    您在頁面上看到的資料以 Json 形式儲存在