Python 上 BeautifulSoup 的问题 - 属性错误

Issues with BeautifulSoup on Python - Attribute Error

我只是想做一个电报机器人,它会向我发送有关 NFT 项目底价的更新。我尝试使用 BeautifulSoup 使用以下代码抓取底价:

    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    import requests
    import urllib.request
    
    url = "https://magiceden.io/marketplace/bulldog_billionaires"
    
    response = requests.get(url)
    
    
    soup = BeautifulSoup(response.text, 'html.parser')
    
    result = soup.find("div", {"p-3 bg-color-third d-flex flex-column border-radius-8px h-100 position-relative attributes-main"})
    print(result.title)

但它总是给我以下错误:“AttributeError: 'NoneType' object has no attribute 'title'”

任何人都可以帮我解决这个问题吗?我必须关注这个 NFT 项目,所以我需要这个机器人!

谢谢大家!

此网页是动态加载的,因此您的获取请求不会 return 页面上的许多数据。因此,当您尝试使用 beautifulsoup 查找指定数据时,它不会找到它,这就是它引发属性错误的原因。

要解决这个问题,您可以使用像 selenium 这样的网络驱动程序:

from selenium import webdriver
from bs4 import BeautifulSoup

url = "https://magiceden.io/marketplace/bulldog_billionaires"
driver = webdriver.Firefox()
driver.get(url)
page = driver.page_source


soup = BeautifulSoup(page, "html.parser")
result = soup.find("div", {"p-3 bg-color-third d-flex flex-column border-radius-8px h-100 position-relative attributes-main"})

这是文档:https://selenium-python.readthedocs.io