Отсутствуют значения веб-страницы при очистке данных с помощью BeautifulSoup python 3.6

Я использую сценарий ниже, чтобы сбрасывать данные «STOCK QUOTE» с сайта http://fortune.com/fortune500/xcel-energy/ , но он дает пустоту.

Я также использовал драйвер selenium, но тот же вопрос. Пожалуйста, помогите по этому поводу.

import requests from bs4 import BeautifulSoup as bs import pandas as pd r = requests.get('http://fortune.com/fortune500/xcel-energy/') soup = bs(r.content, 'lxml') # tried: 'html.parser data = pd.DataFrame(columns=['C1','C2','C3','C4'], dtype='object', index=range(0,11)) for table in soup.find_all('div', {'class': 'stock-quote row'}): row_marker = 0 for row in table.find_all('li'): column_marker = 0 columns = row.find_all('span') for column in columns: data.iat[row_marker, column_marker] = column.get_text() column_marker += 1 row_marker += 1 print(data) 

Выход:

  C1 C2 C3 C4 0 Previous Close: NaN NaN 1 Market Cap: NaNB NaN B 2 Next Earnings Date: NaN NaN 3 High: NaN NaN 4 Low: NaN NaN 5 52 Week High: NaN NaN 6 52 Week Low: NaN NaN 7 52 Week Change %: 0.00 NaN NaN 8 P/E Ratio: n/a NaN NaN 9 EPS: NaN NaN 10 Dividend Yield: n/a NaN NaN 

Снимок экрана источника

One Solution collect form web for “Отсутствуют значения веб-страницы при очистке данных с помощью BeautifulSoup python 3.6”

Похоже, что данные, которые вы ищете, доступны на этой конечной точке API :

 import requests response = requests.get("http://fortune.com/api/v2/company/xel/expand/1") data = response.json() print(data['ticker']) 

FYI, при открытии страницы в автоматизированном браузере с селеном вам просто нужно убедиться, что вы дождались появления нужных данных до разбора HTML- кода:

 from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import pandas as pd url = 'http://fortune.com/fortune500/xcel-energy/' driver = webdriver.Chrome() wait = WebDriverWait(driver, 10) driver.get(url) wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".stock-quote"))) page_source = driver.page_source driver.close() # HTML parsing part soup = BeautifulSoup(page_source, 'lxml') # tried: 'html.parser data = pd.DataFrame(columns=['C1','C2','C3','C4'], dtype='object', index=range(0,11)) for table in soup.find_all('div', {'class': 'stock-quote'}): row_marker = 0 for row in table.find_all('li'): column_marker = 0 columns = row.find_all('span') for column in columns: data.iat[row_marker, column_marker] = column.get_text() column_marker += 1 row_marker += 1 print(data) 
  • «Цена» продукта Flipkart.com и извлечение продукта «название» с использованием Python
  • Как я могу прокручивать данные для нескольких страниц на веб-сайте с помощью python и beautifulsoup4
  • Скребок с BeautifulSoup и несколько абзацев
  • Как сформулировать выражение Xpath для получения атрибута из дочернего узла?
  • Как очистить теги html, распространяемые по нескольким строкам в python?
  • Webcraping в python: ошибка BS, селена и None
  • Python - Загрузить изображения из Google Поиск изображений?
  • Нажмите кнопки с изображениями
  • Очистка Google Finance (BeautifulSoup)
  • Скремблирование сгенерированных javascript данных с использованием Python
  • Как я могу анализировать переменные Javascript с помощью python?
  • Python - лучший язык программирования в мире.