我正在尝试使用 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 形式存储在
元素中。要解析它,您可以使用下一个示例:
打印: