Сценарий загружает исторические цены на акции с сайта finance.yahoo.com. Массив тикеров используется для контуров через скрипт, создает лики на основе массива тикеров и загружает данные, связанные с каждым тикером. Однако некоторые из символов тикера уже не обновлены, и в результате yahoo предоставляет 404 страницы вместо информации о ценах, содержащих csv. Затем страницу с ошибкой хранится в csv и сохраняется на моем компьютере. Чтобы не загружать эти файлы, я ищу строку «К сожалению, запрошенная вами страница не найдена», которая содержится на каждом из сайтов ошибок yahoos в качестве индикатора для страницы 404.Как скачать данные цены акции только тогда, когда она не является ошибочной (404)?
Поведение кода (вывод см ниже код):
код выполняется через все линеечки и загружает все цены акций .csv-х. Это отлично подходит для всех тикеров, но некоторые символы тикера больше не используются yahoo. В случае символа тикера, который больше не используется, программа загружает .csv, содержащую страницу yahoos 404. Все файлы (также хорошие, содержащие фактические данные) загружаются в каталог c: \ Users \ W7ADM \ stock-price-leecher \ data2.
Проблема:
Я бы для кода не загрузить страницу 404 в файл CSV, а просто ничего не делать в этом случае и перейти к следующему тикер в цикле нравится. Я пытаюсь добиться этого с помощью if-условия, которое ищет строку «Извините, запрошенная вами страница не найдена». то есть diplayed на yahoos 404-pages. В конце концов, я хочу скачать все csv для тикеров, которые на самом деле существуют, и сохранить их на моем hdd.
var url_begin = 'http://real-chart.finance.yahoo.com/table.csv?s=';
var url_end = '&a=00&b=1&c=1950&d=11&e=31&f=2050&g=d&ignore=.csv';
var tickers = [];
var link_created = '';
var casper = require('casper').create({
pageSettings: {
webSecurityEnabled: false
}
});
casper.start('http://www.google.de', function() {
tickers = ['ADS.DE', '0AM.DE']; //ADS.DE is retrievable, 0AM.DE is not
//loop through all ticker symbols
for (var i in tickers){
//create a link with the current ticker
link_created=url_begin + tickers[i] + url_end;
//check to see, if the created link returns a 404 page
this.open(link_created);
var content = this.getHTML();
//If is is a 404 page, jump to the next iteration of the for loop
if (content.indexOf('Sorry, the page you requested was not found.')>-1){
console.log('No Page found.');
continue; //At this point I want to jump to the next iteration of the loop.
}
//Otherwise download file to local hdd
else {
console.log(link_created);
this.download(link_created, 'stock-price-leecher\\data2\\'+tickers[i]+'.csv');
}
}
});
casper.run(function() {
this.echo('Ende...').exit();
});
Выход:
C:\Users\Win7ADM>casperjs spl_old.js
ADS.DE,0AM.DE
http://real-chart.finance.yahoo.com/table.csv?s=ADS.DE&a=00&b=1&c=1950&d=11&e=31
&f=2050&g=d&ignore=.csv
http://real-chart.finance.yahoo.com/table.csv?s=0AM.DE&a=00&b=1&c=1950&d=11&e=31
&f=2050&g=d&ignore=.csv
Ende...
C:\Users\Win7ADM>