исправлена очистка URL (Selenium)

#python #html #selenium #web-scraping

#python #HTML #selenium #очистка веб-страниц

Вопрос:

привет! У меня есть вопрос о том, что я хочу очистить названия компаний и названия тикеров в «https://www.nasdaq.com/market-activity/stocks/screener » Поэтому я думаю, что Селен может помочь моей проблеме. но мой код работает только на первой странице. Прошу прощения за мой плохой английский.

 from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.common.keys import Keys
import time

nasduq_all=[] #ticker company
nasduq_ticker=[] #ticker lists(홀수)
nasduq_company=[] #company lists(짝수)
dict_nasduq={} #ticker company

page_url = 'https://www.nasdaq.com/market-activity/stocks/screener'
driver = webdriver.Chrome('/Users/kim/Desktop/dgaja/chromedriver')
driver.implicitly_wait(2)
driver.get(page_url)
time.sleep(1)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')

#First of all, I'm only trying to go to page 2. :[
driver.find_element_by_xpath("/html/body/div[2]/div/main/div[2]/article/div[3]/div[1]/div/div/div[3]/div[5]/button[2]").send_keys(Keys.ENTER)
time.sleep(10)
ticker = soup.find("tbody", {"nasdaq-screener__table-body"}).find_all('a')
for i in ticker: #text
    name=i.text
    nasduq_all.append(name)
print(nasduq_all)
 

Комментарии:

1. Итак, вы хотите правильно удалять данные с каждой страницы. Например, после завершения на странице 1 вы переходите на страницу 2, затем на страницу 3 и т.д.

2. вы можете использовать API для загрузки CSV-файла. этот URL-адрес предоставляет вам объект json со всеми данными в таблице. api.nasdaq.com/api/screener /…

3. следующая страница — это кнопка. итак, вам нужен selenium, чтобы найти кнопку и нажать ее <button class=»pagination__next» aria-label=»нажмите, чтобы перейти на следующую страницу»></button>

4. @ Jonathan Leon, как вы узнали, что конкретный веб-сайт предлагает доступ к API? Я тоже об этом подумал. Я не видел на сайте ничего очевидного, что указывало бы на то, что у него есть конечная точка API. Мне любопытно узнать, как вы это узнали.