1

我正在尝试使用 BeautifulSoup 按 CSS 类查找标签。阅读文档并尝试不同的方法,但以下代码返回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}')
4

2 回答 2

2

由于 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
于 2021-09-01T22:56:48.273 回答
1

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

您将需要使用诸如Selenium刮擦之类的东西。

于 2021-09-01T22:18:37.157 回答