2015-02-24 4 views
1

Так что я очень новичок в python, и я пытаюсь получить данные из таблицы из iso-ne.com/isoexpress/ с помощью bs4 и urllib. Вот то, что я до сих пор:BeautifulSoup findall возвращает пустой список

from bs4 import BeautifulSoup 
from urllib import urlopen 
website='http://www.iso-ne.com/isoexpress/' 
html=urlopen(website).read().decode('utf-8') 
soup=BeautifulSoup(html, 'html.parser') 
table=soup.find('div', {'class': 'chart'}) 
rows=table.find_all('tr') 
for tr in rows: 
    col=tr.find_all('td') 
    for td in col: 
     text=td.find_all(class_='lmp-list-energy') 
     print text 

Когда я запускаю это, я получаю 6 пустых скобок:

[] 
[] 
[] 
[] 
[] 
[] 

данные, которые я пытаюсь получить это пять минут реального времени LMP цена за штат Нью-Хэмпшир на сайте iso-ne

+0

Я считаю, что эти элементы не просто существовать перед выполнением JavaScript. Вот почему вы не можете получить их таким образом – Retard

ответ

2

Данные заполняются javascript, который не интерпретируется beautifulsoup: вы получаете необработанный контейнер.

Что бы я сделал (но я бы уточнил о законности и условиях ...): посмотрите на запросы, сделанные на бэкэнд (например, используя сетевой режим на хроме) => вы найдете что-то для вызова http://iso-ne.com/ws/wsclient. Возьмите параметр, который посылает ваш клиент (cookie ...), и повторите запрос (или уточните параметры, хотя проб и ошибок).

удачи (мне удалось повторить запрос данных от завитка, поэтому оно должно быть выполнимо в питоне)