Python 如何将嵌套在一个div下的所有div刮到一个列表中?

Python 如何将嵌套在一个div下的所有div刮到一个列表中?,python,selenium,selenium-webdriver,web-scraping,beautifulsoup,Python,Selenium,Selenium Webdriver,Web Scraping,Beautifulsoup,我目前正在使用Selenium和BeautifulSoup开发一个webscraper。我觉得我遇到的问题更多的是因为我缺乏Python经验,而不是因为我有使用库的经验。我的问题归根结底是,有一些div没有嵌套在div下的类,而这些div有一个我想要刮到列表中的类。我不完全确定如何运行这些嵌套的div并将所有信息放入列表中。我相信我的问题的一部分是因为我没有在Python中使用嵌套for循环的经验,因为我相信当前的for循环会导致无限循环。让我知道你想到了什么。谢谢 from selenium

我目前正在使用Selenium和BeautifulSoup开发一个webscraper。我觉得我遇到的问题更多的是因为我缺乏Python经验,而不是因为我有使用库的经验。我的问题归根结底是,有一些div没有嵌套在div下的类,而这些div有一个我想要刮到列表中的类。我不完全确定如何运行这些嵌套的div并将所有信息放入列表中。我相信我的问题的一部分是因为我没有在Python中使用嵌套for循环的经验,因为我相信当前的for循环会导致无限循环。让我知道你想到了什么。谢谢

from selenium import webdriver
from bs4 import BeautifulSoup
import time
import os

driver = webdriver.Firefox(executable_path="/Users/myuser/Documents/geckodriverfolder/geckodriver")

driver.get('https://rotogrinders.com/projected-stats?site=draftkings&sport=nba')

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

html = driver.page_source

soup = BeautifulSoup(html, 'lxml')

salary_opp = []
for test in soup.find_all('div', class_='rgt-col'):
  for test2 in soup.find_all('div'):
    draft_kings = test2.text
    salary_opp.append(draft_kings)

print(salary_opp)
这是我在for循环之前所做的,但它只将嵌套在单数div下的第一个div放入列表中:

for test in soup.find_all('div', class_='rgt-col'):
  draft_kings = test.div.text
  salary_opp.append(draft_kings)

如果您想获取没有类的标记,即
,则可以使用
class\uuu=None

for test in soup.find_all('div', class_='rgt-col'):
    for test2 in test.find_all('div', class_=None):
        draft_kings = test2.text
        salary_opp.append(draft_kings)

我没有检查循环背后的逻辑,但是使用
test.find\u all('div',class\u=None)
将回答您的问题。另外,请注意,我已将的第二个
循环从
soup.find…
更改为
test.find…

您能在问题中添加相关的html吗?还是太大了?最简单的方法就是去查看web开发者工具,比如工资栏。它相当大。您不需要用BS解析整个页面源代码。您可以直接使用selenium webdriver选择特定元素。感谢您的快速响应。我相信这里的主要问题是我在Python中的嵌套for循环方面的无能:)。我相信你会很快学会的。另外,看一看,你将能够很容易地在一行中完成你现在正在做的事情。我也可以给你提供那个代码,但是如果你自己尝试一下会更好。