Ik moet van een internetpagina het laatste nieuws afhalen, en in een andere pagina tonen. Helaas is deze pagina niet server-side dynamisch opgebouwd, dus moet dit nieuws dmv javascript ingeplakt worden. De pagina wordt een kloon van http://studenten.tudelft.nl. Hier zie je dat "Laatste nieuws" wordt gegenereerd door een javascript wat een rss feed parsed.
Helaas heeft de bron-pagina waar ik het nieuws vandaan moet halen geen rss feed. Ik moet dus de html filteren. De pagina waar ik de html uit moet knippen is deze: http://www.tudelft.nl/liv...844b-5b271aeec64a&lang=nl
Wat ik dus heb gedaan is dit als een scriptje toegevoegd:
Hoe kan ik simpel en liefst via dom dit oplossen? Ik krijg nu namelijk de volgende error:
Graag geen commentaar dat ik maar xml feeds moet gaan produceren, want dat is uitgezocht, en echt niet mogelijk 
Even nog een samenvatting:
Ik wil op zo'n soort pagina de bovenste zes nieuws items van deze pagina tonen, wat met javasscript ingeladen moet worden. De bron-pagina is echter een html pagina, en die krijg ik niet goed geparsed. Hoe los ik dit op?
Helaas heeft de bron-pagina waar ik het nieuws vandaan moet halen geen rss feed. Ik moet dus de html filteren. De pagina waar ik de html uit moet knippen is deze: http://www.tudelft.nl/liv...844b-5b271aeec64a&lang=nl
offtopic:
Ik moet dus het nieuwsbericht "Delftse onderzoekers ontrafelen de werking van de fiets" t/m "Lustrumsymposium TU Delft “Sustainable Solutions, focus on Africa”" knippen uit de pagina
Ik moet dus het nieuwsbericht "Delftse onderzoekers ontrafelen de werking van de fiets" t/m "Lustrumsymposium TU Delft “Sustainable Solutions, focus on Africa”" knippen uit de pagina
Wat ik dus heb gedaan is dit als een scriptje toegevoegd:
JavaScript:
Mijn insteek was om de pagina als xml-tree in te laden, en dan de html in de functie stripRequest uit te filteren: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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| var requestUri = "http://www.tudelft.nl/live/pagina.jsp?id=25d410c9-3dd2-4579-844b-5b271aeec64a&lang=nl"; var xmlHttp; function loadNews(){ netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); xmlHttp = createRequest(); if(!xmlHttp){ return; } var requestValue = sendRequest(); requestValue = stripRequest(requestValue); } function createRequest(){ var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); }catch (e){ // Internet Explorer try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }catch (e){ xmlHttp = false; } } } return xmlHttp; } function sendRequest(){ xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4){ return xmlHttp.responseXML; } } xmlHttp.open("GET",requestUri,true); xmlHttp.overrideMimeType('text/xml'); xmlHttp.send(null); } function stripRequest(xmlObj){ var obj = xmlObj.getElementById("document0"); /* doe hier iets met obj zodat alleen de eerste vijf nieuws items weergegeven worden */ return obj; } |
- Eerst alles om de div met id "document0" weg te gooien (dat bevat voor mij niet-interessante info).
- Daarna pak ik van de serie <strong></strong><em></em><p></p> de eerste vijf items
Hoe kan ik simpel en liefst via dom dit oplossen? Ik krijg nu namelijk de volgende error:
Error: syntax error Source File: http://www.tudelft.nl/live/pagina.jsp?id=25d410c9-3dd2-4579-844b-5b271aeec64a&lang=nl Line: 3, Column: 62 Source Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">-------------------------------------------------------------^
Even nog een samenvatting:
Ik wil op zo'n soort pagina de bovenste zes nieuws items van deze pagina tonen, wat met javasscript ingeladen moet worden. De bron-pagina is echter een html pagina, en die krijg ik niet goed geparsed. Hoe los ik dit op?