2014-11-05 1 views
1

Довольно неопытный с этим типом усилий по программированию, гораздо более знакомый со встроенными системами. У меня очень мало веб-программирования xp.Scrape данные веб-сайта для CSV

То, что я хотел бы достичь:

Сайт (danglefactory.com) имеет большую таблицу статистических данных, которые я бы загрузить в CSV для обработки нравится. На веб-сайте есть кнопка, которая вызывает внутренний скрипт для создания cvs и подготовки к загрузке.

Referer http://www.danglefactory.com/projections/skaters/daily

Script http://www.danglefactory.com/scripts/copy_csv_xls.swf

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

Спасибо,

+0

Я не знаю, как поймать этот csv, но вы могли бы получить этот JSON-вызов. И чем передать этот JSON в csv. –

ответ

0

Первый подход, который вы можете предпринять, довольно низкоуровневый.

Под капотом есть JSON API-вызовы, которые можно имитировать, используя, например, requests.

Вот как вы можете получить ежедневные прогнозы:

import requests 

url = 'http://www.danglefactory.com/api/DailySkaterProjections?_=1415200157912' 
response = requests.get(url) 

data = response.json() 
print data 

Печать:

[{u'A': 0.61, 
    u'Blocks': 0.37, 
    u'Corsi': 0.53, 
    u'FOL': 9.07, 
    u'FOW': 8.95, 
    u'FOWinPerc': 49.6, 
    u'G': 0.39, 
    u'Giveaways': 0.89, 
    u'Hits': 0.54, 
    u'Name': u'John Tavares', 
    u'Opponent': u'ANA', 
    u'P': 0.99, 
    u'PIM': 0.51, 
    u'PPA': 0.24, 
    u'PPG': 0.11, 
    u'PlayerID': 411, 
    u'PlusMinus': 0.05, 
    u'PrimaryPosition': u'C', 
    u'SHA': 0.0, 
    u'SHG': 0.0, 
    u'ShPerc': 12.6, 
    u'Shots': 3.1, 
    u'TOI': 20.39, 
    u'Takeaways': 0.82, 
    u'Team': u'NYI'}, 
{u'A': 0.7, 
    u'Blocks': 1.0, 
    u'Corsi': 0.47, 
    u'FOL': 8.69, 
    u'FOW': 8.43, 
    u'FOWinPerc': 49.3, 
    u'G': 0.28, 
    u'Giveaways': 0.84, 
    u'Hits': 1.49, 
    u'Name': u'Ryan Getzlaf', 
    u'Opponent': u'NYI', 
    u'P': 0.97, 
    u'PIM': 0.68, 
    u'PPA': 0.22, 
    u'PPG': 0.07, 
    u'PlayerID': 161, 
    u'PlusMinus': 0.06, 
    u'PrimaryPosition': u'C', 
    u'SHA': 0.04, 
    u'SHG': 0.02, 
    u'ShPerc': 11.9, 
    u'Shots': 2.3, 
    u'TOI': 20.52, 
    u'Takeaways': 0.61, 
    u'Team': u'ANA'}, 

    ... 

}] 

Затем вы можете преобразовать результаты в CSV-файл, соответственно, используя csv модуль.


Другим решением может быть использование selenium браузер инструмента автоматизации, но проблема заключается в том, что кнопка CSV и таблица находится внутри объекта вспышки, которая selenium cannot interact with.


Вы можете хотя использовать инструмент автоматизации распознавания изображений и экрана, как sikuli найти ту CSV кнопку и нажмите на нее. Это если вы все еще хотите остаться на «высоком уровне».

Надеюсь, что это поможет.

+1

Я думаю, вы имеете в виду это: http://www.danglefactory.com/api/DailySkaterProjections –

+0

@VincentBeltman yup, спасибо. – alecxe

+0

Спасибо за предложение, я знал, что должен быть способ использовать хороший API, который они предлагают, и насколько хорошо, что он находится в сыром JSON. Сначала я пытался разобрать HTML и очистить таблицы, а затем нашел ваше предложение. Быстро реализована в R, хотя было запрошено решение python. – Neurax

 Смежные вопросы

  • Нет связанных вопросов^_^