python - Python Beautifulsoup(bs4)findAll没有找到所有元素
问题描述
从代码中的 url,我最终试图从页面中收集所有玩家的名字。但是,当我使用 .findAll 来获取所有列表元素时,我还没有成功。请指教。
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
players_url = 'https://stats.nba.com/players/list/?Historic=Y'
# Opening up the Connection and grabbing the page
uClient = uReq(players_url)
page_html = uClient.read()
players_soup = soup(page_html, "html.parser")
# Taking all of the elements from the unordered lists that contains all of the players.
list_elements = players_soup.findAll('li', {'class': 'players-list__name'})
解决方案
正如@Oluwafemi Sule建议的那样,最好与以下内容selenium
一起使用BS
:
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://stats.nba.com/players/list/?Historic=Y')
soup = BeautifulSoup(driver.page_source, 'lxml')
for div in soup.findAll('li', {'class': 'players-list__name'}):
print(div.find('a').contents[0])
输出:
Abdelnaby, Alaa
Abdul-Aziz, Zaid
Abdul-Jabbar, Kareem
Abdul-Rauf, Mahmoud
Abdul-Wahad, Tariq
等等
推荐阅读
- sdl-2 - 韦斯顿的 SDL_CreateWindow 上没有显示窗口
- python - 属性错误:“列表”对象没有属性“字符串”
- python - 将数据数组转换为近似等高线图 (Python)
- node.js - “对象承诺”而不是值 node.js
- powershell - 从 get-childitem 搜索中排除路径
- react-native - 反应原生模型弹出样式问题
- android - 有没有办法将标签放在 Flutter 的抽屉中?
- c - 如何确定循环级并行性对先前语句的未来迭代的依赖性?
- github - 我无法在 Github 上创建分叉
- python - Ansible 中的回溯错误(Python 版本不匹配?)