data mining gebruiken en data opslaan
LS, ik ben op zoek naar script dat ik kan gebruiken om data op te slaan als ik een website (specifieke pagina) open. Als het goed is wordt data opgehaald om de betreffende pagina zichtbaar te maken. Ik wil nu specifieke data daaruit opslaan in een SQL dbase. Concreet wil ik van een site de koers van een bepaald beursfonds ophalen en deze dan met de datum en tijd opslaan. Zodat ik over een periode data heb die ik dan weer kan bewerken of waar ik een berekening op kan loslaten. Ik heb nog niet iets concreets gevonden op dit forum, maar het kan zijn dat ik niet onder de verkeerde nummer zoek. Graag jullie hulp.
Heb je al enige ervaring met PHP, en wat is je kennis?
Beperkte kennis en ervaring. Ik heb een aantal websites gemaakt en draai op een externe server een mySQL dbase met een webbased bedrijfsadministratie voor 4 bedrijfjes. Zowel PHP, als SQL zijn dus bekend, maar de meeste trucjes heb ik hier geleerd.
Verder wil ik je er wel op wijzen dat op de recente beursdata een licentie nodig is.
Dat is een goede vraag. Ik was al een tijdje op zoek naar beursdata en kon niet echt een partij vinden die ze levert. Vandaar dat ik dacht ze van een site te kunnen halen. Bedoel je een betaalde licentie? Zou dat niet makkelijker zijn om data direct van een provider te halen en die op te slaan? De vraag is dan hoe en in welk format die data wordt geleverd? Enig idee of op dit forum iemand al eens met dit vraagstuk heeft geworsteld? Of zelfs al voorbeelden heeft?
soort gelijke vraag
beurskoersen. rechts bovenaan heb je een download linkje waar je een xls,csv of txt kan downloaden (met vertraging waarschijnlijk). Dit zou je dan kunnen automatiseren.
Toevoeging op 28/05/2014 10:15:53:
Ik weet niet of ie site zich beschermt tegen XSRF (request van buiten af), maar anders zou dit moeten werken. Het kan zijn dat het 'form_build_id' verandert, dan gaat de zon niet op.
beurskoersen. rechts bovenaan heb je een download linkje waar je een xls,csv of txt kan downloaden (met vertraging waarschijnlijk). Dit zou je dan kunnen automatiseren.
Toevoeging op 28/05/2014 10:15:53:
Ik weet niet of ie site zich beschermt tegen XSRF (request van buiten af), maar anders zou dit moeten werken. Het kan zijn dat het 'form_build_id' verandert, dan gaat de zon niet op.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<base href="https://europeanequities.nyx.com/" />
<?php
header('Content-type: text/plain; charset=utf-8');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://europeanequities.nyx.com/nl/popup/data/download?ml=nyx_pd_stocks&cmd=default&formKey=nyx_pd_filter_values%3A26a34da91d9698cd447c20735cf27d8a");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(
array(
'format' => 2, // 1 = xsl, 2 = csv, 3 = txt
'layout' => 2, // 1 = horizontal layout, 2 = vertical layout
'decimal_separator' => 1, // 1 = point, 2 = comma
'date_format' => 1, // 1 = day/month/year, 2 = month/day/year
'op' => 'Go',
'form_build_id' => 'form-83671552dda9f658143e60df71354d64',
'form_id' => 'nyx_download_form',
)
)
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
echo $server_output;
<?php
header('Content-type: text/plain; charset=utf-8');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://europeanequities.nyx.com/nl/popup/data/download?ml=nyx_pd_stocks&cmd=default&formKey=nyx_pd_filter_values%3A26a34da91d9698cd447c20735cf27d8a");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(
array(
'format' => 2, // 1 = xsl, 2 = csv, 3 = txt
'layout' => 2, // 1 = horizontal layout, 2 = vertical layout
'decimal_separator' => 1, // 1 = point, 2 = comma
'date_format' => 1, // 1 = day/month/year, 2 = month/day/year
'op' => 'Go',
'form_build_id' => 'form-83671552dda9f658143e60df71354d64',
'form_id' => 'nyx_download_form',
)
)
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
echo $server_output;
Gewijzigd op 28/05/2014 10:20:58 door Michael -
Bedankt voor de reactie en het voorbeeld. Ik ga het bestuderen en proberen toe te passen.