hallo,

ik ben bezig scriptje die deze stappen automatiseren
Net 5, SBS 6 en Veronica:
1. Gebruik http://www.sbs6.nl/, http://www.net5.nl/ of http://www.veronicatv.nl/ afhankelijk van de gewenste zender. Deze uitleg gaat uit van http://www.sbs6.nl/.
2. Open http://www.sbs6.nl/ajax/Video/page/1, http://www.sbs6.nl/ajax/Video/page/2, etc. totdat je het gewenste aantal video's hebt bereikt. Sla hiervan de URLs naar de afleveringenpagina's op.
3. Open een afleveringenpagina uit stap 2 en zoek in de html-code naar een javascriptblok met "playerID" en "@videoPlayer". Sla de bijbehorende waardes op.
4. Open http://c.brightcove.com/services/viewer/htmlFederated?playerID= + playerID-waarde uit stap 3 + &@videoPlayer= + @videoPlayer-waarde uit stap 3. Let op: als je deze pagina opent, moetje de referrer instellen op bijvoorbeeld http://www.sbs6.nl/. De pagina heeft namelijk een domeinrestrictie om het embedden in andere sites onmogelijk te maken.
5. Zoek in de pagina van stap 4 naar een javascriptblok met daarin driemaal "defaultURL". De bijbehorende waardes zijn gewoon http-links naar de video's die je direct kunt gebruiken.

ik heb nog geen werkend beginnetje
wie kan me helpen?

alvast bedankt
Robert-Jan
Vertaal eens? En waar komt die functie vandaan denk je?
hallo,

ik zou graag willen weten of ik data van een site kan halen en die vervolgens in een xml bestand kan zetten. als dat mogelijk is zou iemand dan willen uitleggen hoe?

alvast bedankt,

RobertJan
Die $html-class van simplhtmldom is echt de bom. Dat werkt als een trein.
Werkt je class-aanroep wel? Dus alles juist geïncluded en aangeroepen?

Het kan ook ongeveer zo: (dit haalt een stuk tekst weg uit een lap html):
<?php

	// TAAK 1: verkrijg meditatie
// TAAK 1: verkrijg meditatie
	$tekst = file_get_contents('http://hghg.nl/index.php?view=article&catid=16%3Akerkbode&id=522%3Akerkbode-68-18&tmpl=component&print=1&layout=default&page=&option=com_content&Itemid=24');
	//$tekst = htmlentities($tekst);
	$tekst = tussen($tekst, '<strong>', '<p align="center">');
	$tekst = strip_tags($tekst, "<em></em>");
	$tekst = str_replace(array("&nbsp;", "\t", '‘', '’', '“', '”'), '', $tekst);
	$regels = explode(PHP_EOL, $tekst);

	$regels = array_filter($regels, create_function('$a', 'return trim($a)!="";'));
	$regels = array_values($regels);

	// verkrijg delen
	$titel = trim($regels[0]);
	list($vers, $locatie) = explode("</em>", $regels[1]);
	$vers = '<i>' . str_replace("<em>", '', $vers) . '</i>';
	$locatie = '<u>' . trim(str_replace(array("(", ")"), '', $locatie)) . '</u>';
	$schrijver = end($regels);
	$tekst = array_slice($regels, 2, (count($regels) - 3));
	$tekst = '<p>' . implode("</p>\n</p>", $tekst) . '</p>';

	echo '<h1>' . $titel . '</h1>' . $vers . $locatie . '<br><br><br>' . $tekst . '<br><br><br>' . $schrijver;
?>


En iets moeilijker, met inloggen etc.
Dit haalt alle uitzendingen van kerkdienstgemist.nl:
[code]<?php


// TAAK 3: preken downloaden van kerkuitzendinggemist.nl
$pagina = 'http://kerkdienstgemist.nl/playlists/legacy.html?id=369';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pagina);
// set url to post to
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 600000);
// times out after Ns
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// times out after Ns
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_POST, 0);
// set POST method
curl_setopt($ch, CURLOPT_FAILONERROR, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$res = curl_exec($ch);
$res = tussen($res, "<table border='0' cellpadding='0' cellspacing='0' class='center'>", '</table>');
//$res = strip_tags($res, "<a></a><img>");
$res = explode("</tr>", $res);

$res = array_slice($res, 0, 3);
foreach($res as $res2)
{

$url = tussen($res2, "</td>" . PHP_EOL . "<td class='buttons'>", '" title="Downloaden');
$url = str_replace('<a href="', 'http://kerkdienstgemist.nl', $url);
$url = trim($url);
$echo[] = 'cURL() haalt '.$url.' op.';

// stap 3b
$pagina = $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pagina);
// set url to post to
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, 1);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 600000);
// times out after Ns
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
// times out after Ns
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_POST, 0);
// set POST method
curl_setopt($ch, CURLOPT_FAILONERROR, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$res = curl_exec($ch);
// <html><body>You are being <a
// href="http://media.kerkdienstgemist.nl:80/11304060/2012-06-10-1800.mp3?Signature=13U0StxNq7K%2BUn%2BmmTJ3cb8q6d8%3D&amp;Expires=1339865566&amp;AWSAccessKeyId=1VYKRTJ5FFKT5B6F4NR2">redirected</a>.</body></html>
$res = str_replace('<html><body>You are being <a href="', '', $res);
$res = str_replace('">redirected</a>.</body></html>', '', $res);
//$echo[] = 'cURL() heeft het echte pad verkregen: '.$res;

// stap 3c, bestand downloaden en opslaan
// bewerk en verkrijg gegevens voor opslag
$naam = $url = $res;

// naam krijgen
$naam = str_replace("http://media.kerkdienstgemist.nl:80/", "", $naam);
list($nummer, $datum_en_meer) = explode("/", $naam);
list($datum, $opties) = explode("?", $datum_en_meer);
$naam = $datum;

// datum krijgen
$datum = str_replace(".mp3", "", $naam);
$datum = $datum;
list($jaar, $maand, $dag, $tijd) = explode("-", $datum);
$tijd = substr($tijd, 0, 2) . ":" . substr($tijd, 2, 2) . ':00';
$datum = $jaar . '-' . $maand . '-' . $dag . ' ' . $tijd;

?>

Uiteraard sla ik het ook nog een keer op ;).

bedankt voor de uitleg maar hoe maak ik van de informatie nou een xml?
Als mijn xml er bijv. zo uit ziet

<?xml version="1.0" encoding="UTF-8"?>
<music>
<song>
<id>1</id>
<title>Someone Like You</title>
<artist>Adele</artist>
<thumb_url>http://api.androidhive.info/music/images/adele.png</thumb_url>
</song>
</music>

en ik wil informatie van bijv. top40.nl hier in zetten hoe doe ik dat dan?

id = plaatsnummer
title = titel
artist = artiest
thumb_url = afbeelding
@Eddy Erkelens

Bedankt deze code.
Ik heb alleen nog een vraag.
Wat als ik nou van http://www.sbs6.nl/ajax/Video/page/1 een afbeelding wil pakken:

<span class="icon btnIconVideo">&nbsp;</span></a>
<div class="iBody" style="width:auto;">
<h2><a href="/programmas/the-price-is-right/videos/seizoen-0/aflevering-60/the-price-is-right">The Price is Right</a></h2><p><a href="/programmas/the-price-is-right/videos/seizoen-0/aflevering-60/the-price-is-right">Aflevering 60</a></p><p class="alt"><a href="/programmas/the-price-is-right/videos/seizoen-0/aflevering-60/the-price-is-right">16 november / 30:19 min</a></p> </div>
</div>
<div class="i iBorder" style="">
<a href="/programmas/droomhuis-op-het-platteland/videos/seizoen-0/aflevering-42/droomhuis-op-het-platteland" class="m mLeft" >
<img src="/data/thumb/sbs_media_image/1241000/1241112/w100.350bb_r16-9_ebfe4e4ebf5f243d5875f0b0be880cd4.jpg" alt="Droomhuis op het platteland" width="100" height="56"/>


Daar van dus het kopje <img></img> en dan wil ik alleen die link hebben:
<?php

// TAAK 1: verkrijg meditatie
// TAAK 1: verkrijg meditatie
$tekst = file_get_contents('http://www.sbs6.nl/ajax/Video/page/1';);
//$tekst = htmlentities($tekst);
$tekst = strip_tags($tekst, "<img></img>");

echo '' . $tekst . '';
?>

dit hier boven werkt niet wat moet ik dan nog veranderen?

Alvast bedankt
<?php
	
	// laad HTML in
	$html = file_get_contents('http://www.sbs6.nl/ajax/Video/page/1');
	
	// strip alles behalve de <img>'s (en kale tekst...)
	$html = strip_tags($html, "<img></img>");
	
	// maak de src kloppend, want hoe weet je browser waar je het vandaan moet halen?
	$html = str_replace('src="/', 'src="http://www.sbs6.nl/', $html);

	// neem nu alle afbeeldingen (eventueel kan regel 7 dus weg)
	preg_match_all('/(<img[^>]+>)/i', $html, $imgs);

	// en laat eens gewoon zien wat we hebben...
	// je zou die [0] weg kunnen halen: dan krijg je alles dubbel...
	echo '<pre>' . print_r($imgs[0], true) . '</pre>';
	
	// was dat zo moeilijk? StackOverflow via Google....
?>


Ik moet ook Google gebruiken hoor.
Dat is helemaal niet erg. Kan je zelf ook...
Wat als ik nou meerderen urls wil???

ik heb deze code maar die werkt niet:
<?php

// laad HTML in
$html = file_get_contents('http://www.sbs6.nl/ajax/Video/page/1, http://www.sbs6.nl/ajax/Video/page/2, http://www.sbs6.nl/ajax/Video/page/3, http://www.sbs6.nl/ajax/Video/page/4, http://www.sbs6.nl/ajax/Video/page/5, http://www.sbs6.nl/ajax/Video/page/6, http://www.sbs6.nl/ajax/Video/page/7, http://www.sbs6.nl/ajax/Video/page/8, http://www.sbs6.nl/ajax/Video/page/9';);

// strip alles behalve de <img>'s (en kale tekst...)
$html = strip_tags($html, "<img></img>");

// maak de src kloppend, want hoe weet je browser waar je het vandaan moet halen?
$html = str_replace('src="/', 'src="http://www.sbs6.nl/';, $html);

// neem nu alle afbeeldingen (eventueel kan regel 7 dus weg)
preg_match_all('/(<img[^>]+>)/i', $html, $imgs);

// en laat eens gewoon zien wat we hebben...
// je zou die [0] weg kunnen halen: dan krijg je alles dubbel...
echo '<pre>' . print_r($imgs[0], true) . '</pre>';

// was dat zo moeilijk? StackOverflow via Google....
?>



waarom werken meerderen pagina's/links niet?
Als ik dit maak:
<?php
$page1 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/1';);
$page2 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/2';);
$page3 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/3';);
$page4 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/4';);
$page5 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/5';);
$page6 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/6';);
$page7 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/7';);
$page8 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/8';);
$page9 = file_get_contents('http://www.sbs6.nl/ajax/Video/page/9';);

$html = str_get_html($page1,$page2,$page3,$page4,$page5,$page6,$page7,$page8,$page9);
echo '<pre>' . $html . '</pre>';
?>
?>
Maar wat is er fout?
Wat je vertelt niet wat er volgens jouw fout gaat? Nogmaals:
We hebben geen glazen bol ;-)

En wat doet: str_get_html?

Reageren