2016-12-15 10 views
-1

Я пытаюсь извлечь финансовые данные из yahoo finance с помощью python. Ниже приведена ссылка на изображение, которое показывает круги, данные которых я пытаюсь извлечь. Он имеет организацию таблицы данных, однако я не знаю, с чего начать с показаний, представленных на картинке.Извлечение чисел из Yahoo Финансовая отчетность, желающая заплатить деньги через Pay Pal

Это изображение кодового местоположения номеров, которые я пытаюсь извлечь из yahoo finance, с именем таблицы и тиксерами td.

enter image description here

Я понимаю, что я должен каким-то образом использовать TD линеечки, чтобы найти номера, которые мне нужны для добычи, однако я не уверен, каковы основы команды, которые мне нужно реализовать.

Это link на примере таблицы данных, которые я пытаюсь скрести

ответ

1

Страница, которую вы Царапины оказывает JavaScript, запросы и URLLIB не может обрабатывать JavaScript. Я рекомендую вам использовать селен и BeautifulSoup для извлечения данных. Это когда JavaScript отключен: enter image description here

данные, которые вы хотели в этом URL:

http://financials.morningstar.com/ajax/ReportProcess4HtmlAjax.html?&t=XNAS:AAPL&region=usa&culture=en-US&ops=clear&cur=&reportType=is&period=12&dataType=A&order=asc&columnYear=5&curYearPart=1st5year&rounding=3&view=raw&r=378724&callback=jsonp1482077238548&_=1482077239651 

я положил его в BS4, вы можете получить данные по вы владеете:

import requests, bs4, json 

r = requests.get('http://financials.morningstar.com/ajax/ReportProcess4HtmlAjax.html?&t=XNAS:AAPL&region=usa&culture=en-US&ops=clear&cur=&reportType=is&period=12&dataType=A&order=asc&columnYear=5&curYearPart=1st5year&rounding=3&view=raw&r=378724&callback=jsonp1482077238548&_=1482077239651') 

js = r.text.strip('jsonp1482077238548()') 
html_str = json.loads(js)['result'] 
soup = bs4.BeautifulSoup(html_str, 'lxml') 

из:

<html> 
<body> 
    <div id="baseline" style="display:none"> 
    <div> 
    156508000000 
    </div> 
    <div> 
    170910000000 
    </div> 
    <div> 
    182795000000 
    </div> 
    <div> 
    233715000000 
    </div> 
    <div> 
    215639000000 
    </div> 
    <div> 
    215639000000 
    </div> 
    </div> 
    <div class="left "> 
    <div class="r_xcmenu rf_table_left"> 
    <div class="rf_header "> 
    <div class="lbl " currency="USD" fiscalyearend="September" fyenumber="9" id="unitsAndFiscalYear"> 
    </div> 
    </div> 
    <div class="rf_crow1" id="label_i1" style="_height:16px; _float:none;"> 
    <div class="lbl"> 
     Revenue 
    </div> 
    <div class="chart_contain_free" id="chart_i1"> 
     <div class="chart_icon"> 
     </div> 
    </div> 
    </div> 
+1

Я хочу есть некоторые флажки, чтобы проверить при публикации замечательных вопросов, которые могли бы сказать что-то вроде _ [x] Я понимаю, что запросы + bs не могут использоваться для очистки элементов, которые динамически загружаются с помощью javascript, и я убедился, что это не так. PS: Если это так, я буду использовать selenium first._ –

+0

опубликовать html-код и форму данных, которую вы хотите, чтобы я мог написать код для вас. –

+0

Не найден ли код html на странице проверки страницы. ? Если вы можете помочь соскоблить числа, которые мне нужны, я готов заплатить вам деньги через платного приятеля –