无法找到元素BeautifulSoup



我正在尝试从以下网站解析特定的href链接:https://www.murray-intl.co.uk/en/literature-library.

元素i试图解析:

<a class="btn btn--naked btn--icon-left btn--block focus-within" href="https://www.aberdeenstandard.com/docs?editionId=9123afa2-5318-4715-9783-e07d08e2e7cc&amp;_ga=2.12911351.1364356977.1629796255-1577053129.1629192717" target="blank">Portfolio Holding Summary<i class="material-icons btn__icon">library_books</i></a>

然而,使用BeautifulSoup,我无法获得所需的元素,可能是由于cookie的接受。

from bs4 import BeautifulSoup
import urllib.request
import requests as rq
page = requests.get('https://www.murray-intl.co.uk/en/literature-library')
soup = BeautifulSoup(page.content, 'html.parser')
link = soup.find_all('a', class_='btn btn--naked btn--icon-left btn--block focus-within')
url = link[0].get('href')
url

我还是BS4的新手,希望有人能帮助我正确的方向。

提前感谢!

要获得正确的标签,请删除"focus-within"类(稍后由JavaScript添加):

import requests
from bs4 import BeautifulSoup
url = "https://www.murray-intl.co.uk/en/literature-library"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
links = soup.find_all("a", class_="btn btn--naked btn--icon-left btn--block")
for u in links:
print(u.get_text(strip=True), u.get("href", ""))

打印:

...
Portfolio Holding Summarylibrary_books https://www.aberdeenstandard.com/docs?editionId=9123afa2-5318-4715-9783-e07d08e2e7cc
...

编辑:要只获得指定的链接,您可以使用例如CSS选择器:

link = soup.select_one('a:-soup-contains("Portfolio Holding Summary")')
print(link["href"])

打印:

https://www.aberdeenstandard.com/docs?editionId=9123afa2-5318-4715-9783-e07d08e2e7cc

最新更新