BeautifulSoup.选择classname不起作用



我试图通过CSS类找到标签,使用BeautifulSoup。阅读文档并尝试不同的方法,但下面的代码返回new_elem : []。你能帮我理解一下我做错了什么吗?谢谢。

import requests
from bs4 import BeautifulSoup
url = "https://solanamonkeysclub.com/#/#mint"
response = requests.get(url)
response.encoding = response.apparent_encoding
soup = BeautifulSoup(response.text, 'html.parser')
new_elems = str(soup.select('.ant-card-body'))
print(f'{"new_elem":10} : {new_elems}')

由于url是动态的,我将selenium与bs4一起使用,并得到以下输出:

代码:

import requests
from bs4 import BeautifulSoup
import time
from selenium import webdriver

driver = webdriver.Chrome('chromedriver.exe')
url = "https://solanamonkeysclub.com/#/#mint"
driver.get(url)
time.sleep(8)
soup = BeautifulSoup(driver.page_source, 'html.parser')
new_elems = soup.select('.ant-card-body')
for new_elem in new_elems:
print(f'{"new_elem":10} : {new_elem.text}')

输出:

new_elem   : 0
new_elem   : 0

你看了输出吗?您应该在浏览器中打开这个页面并执行"查看源代码",或者在获取它之后执行print(response.text)。交付的页面不包含HTML元素。整个页面是使用Javascript动态构建的。

你需要使用Selenium之类的东西来刮它。

最新更新