Python Web Scraping (Beautiful Soup, Selenium и PhantomJS): только чистая часть полной страницы

Здравствуйте, у меня возникли проблемы при попытке очистить данные с веб-сайта для целей моделирования (fantsylabs dotcom). Я просто взломщик, так что прости меня за невежество в компиляции. То, что я пытаюсь сделать, это ...

Используйте селен, чтобы войти на сайт и перейти на страницу с данными.

## Initialize and load the web page
url = "website url"
driver = webdriver.Firefox()
driver.get(url)
time.sleep(3)

## Fill out forms and login to site
username = driver.find_element_by_name('input')
password = driver.find_element_by_name('password')
username.send_keys('username')
password.send_keys('password')
login_attempt = driver.find_element_by_class_name("pull-right")
login_attempt.click()

## Find and open the page with the data that I wish to scrape
link = driver.find_element_by_partial_link_text('Player Models')
link.click()
time.sleep(10)

##UPDATED CODE TO TRY AND SCROLL DOWN TO LOAD ALL THE DYNAMIC DATA
scroll = driver.find_element_by_class_name("ag-body-viewport")
driver.execute_script("arguments[0].scrollIntoView();", scroll)

## Try to allow time for the full page to load the lazy way then pass to BeautifulSoup
time.sleep(10)
html2 = driver.page_source

soup = BeautifulSoup(html2, "lxml", from_encoding="utf-8")
div = soup.find_all('div', {'class':'ag-pinned-cols-container'})
## continue to scrape what I want

Этот процесс работает в том, что он входит в систему, переходит на правильную страницу, но после динамической загрузки страницы (30 секунд) передает ее в Beautifulsoup. Я вижу около 300+ экземпляров в таблице, которые я хочу очистить .... Однако скребок bs4 выплевывает только около 30 экземпляров из 300. Из моего собственного исследования кажется, что это может быть проблемой с динамической загрузкой данных через javascript и что только то, что помещается в html i, анализируется bs4? (Использование Python request.get для разбора HTML-кода, который не загружается сразу)

Кому-то может быть сложно дать совет воспроизвести мой пример без создания профиля на веб-сайте, но будет ли использование phantomJS для инициализации браузера быть единственным, что необходимо для «захвата» всех экземпляров, чтобы собрать все нужные данные?

    driver = webdriver.PhantomJS() ##instead of webdriver.Firefox()

Мы будем благодарны за любые мысли или опыт, так как мне никогда не приходилось иметь дело с динамическими страницами / скриптовым javascript, если я столкнулся с этим.

ОБНОВЛЕН ПОСЛЕ Ответа Alecs:

Ниже приведен снимок экрана целевых данных (выделено синим цветом). Вы можете увидеть полосу прокрутки в правой части изображения, и она встроена в страницу. Я также предоставил представление исходного кода страницы в этом контейнере.

Я изменил исходный код, который я предоставил, чтобы попытаться прокрутить вниз и полностью загрузить страницу, но он не может выполнить это действие. Когда я устанавливаю драйвер в Firefox (), я вижу, что страница перемещается вниз через внешнюю полосу прокрутки, но не в целевой контейнер. Я надеюсь это имеет смысл.

Еще раз спасибо за любой совет / руководство.

Ответы на вопрос(1)

Ваш ответ на вопрос