首页  >  问答  >  正文

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粉654894952423 天前418

全部回复(1)我来回复

  • P粉553428780

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

    您在页面上看到的数据以 Json 形式存储在