PDA

Bekijk Volledige Versie : RSS-feed foutmelding: wel te lezen via FireFox, niet viaRSS-lezers



Eduard Bekker
26/01/07, 13:23
Mensen!

Deze melding krijg ik bij het uittesten van de feed van Cobouw.nl (zie url):

http://tinyurl.com/yw539u

De feed van wel te lezen via FireFox, maar niet bijv. via FeedBurner.
Ook kan ik de url niet inlezen via php (zoals ik dat altijd doe met mijn
o.z.j.b.f.php):

$html = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));

Waarom werkt het niet?
En zou er iets aan te doen zijn?

--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Rutger Wessels
26/01/07, 13:23
Eduard Bekker wrote:

> Mensen!
>
> Deze melding krijg ik bij het uittesten van de feed van Cobouw.nl (zie
> url):
>
> http://tinyurl.com/yw539u
>
> De feed van wel te lezen via FireFox, maar niet bijv. via FeedBurner.
> Ook kan ik de url niet inlezen via php (zoals ik dat altijd doe met mijn
> o.z.j.b.f.php):
>
> $html = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
> file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));
>
> Waarom werkt het niet?

Er worden wat cookies gezet en RSS readers snappen dat (blijkbaar) niet. Zie
de HTTP-headers.

> En zou er iets aan te doen zijn?

Klagen bij Cobouw dat hun feed niet goed werkt in rss-readers.

Rik
26/01/07, 13:23
On Fri, 26 Jan 2007 10:32:37 +0100, Eduard Bekker <ebekk@orange.nl> wrote:

> Mensen!
>
> Deze melding krijg ik bij het uittesten van de feed van Cobouw.nl (zie
> url):
>
> http://tinyurl.com/yw539u
>
> De feed van wel te lezen via FireFox, maar niet bijv. via FeedBurner.

Opera krijgt ook een HTTP Status 412 - Cookie support required

> Ook kan ik de url niet inlezen via php (zoals ik dat altijd doe met mijn
> o.z.j.b.f.php):
> $html = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
> file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));
>
> Waarom werkt het niet?
> En zou er iets aan te doen zijn?

Als je hem met PHP wil binnenhalen, zou je via CURL alsnog cookies
(redirects, en nog veel meer) kunnen accepeteren en zo de feed binnenhalen.

--
Rik Wasmus

Eduard Bekker
26/01/07, 13:23
Op de heugelijke dag van 26-01-2007 11:54, schreef "Rutger Wessels" in
28baf$45b9dddd$52cc3109$18392@cache20.multikabel.n et,
<eenleukadres@email.com> pakweg het volgende:

> Eduard Bekker wrote:
>
>> Mensen!
>>
>> Deze melding krijg ik bij het uittesten van de feed van Cobouw.nl (zie
>> url):
>>
>> http://tinyurl.com/yw539u
>>
>> De feed van wel te lezen via FireFox, maar niet bijv. via FeedBurner.
>> Ook kan ik de url niet inlezen via php (zoals ik dat altijd doe met mijn
>> o.z.j.b.f.php):
>>
>> $html = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
>> file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));
>>
>> Waarom werkt het niet?
>
> Er worden wat cookies gezet en RSS readers snappen dat (blijkbaar) niet. Zie
> de HTTP-headers.
>
>> En zou er iets aan te doen zijn?
>
> Klagen bij Cobouw dat hun feed niet goed werkt in rss-readers.

Is al gebeurd, maar je kent dat wel. De systeembeheerder die daar meer van
weet is de komende dagen...

Bovendien treedt dit probleem regelmatig op.

--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Eduard Bekker
26/01/07, 13:23
Op de heugelijke dag van 26-01-2007 12:25, schreef "Rik" in
op.tmrd02t3qnv3q9@misant.kabel.utwente.nl, <luiheidsgoeroe@hotmail.com>
pakweg het volgende:

> On Fri, 26 Jan 2007 10:32:37 +0100, Eduard Bekker <ebekk@orange.nl> wrote:
>
>> Mensen!
>>
>> Deze melding krijg ik bij het uittesten van de feed van Cobouw.nl (zie
>> url):
>>
>> http://tinyurl.com/yw539u
>>
>> De feed van wel te lezen via FireFox, maar niet bijv. via FeedBurner.
>
> Opera krijgt ook een HTTP Status 412 - Cookie support required
>
>> Ook kan ik de url niet inlezen via php (zoals ik dat altijd doe met mijn
>> o.z.j.b.f.php):
>> $html = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
>> file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));
>>
>> Waarom werkt het niet?
>> En zou er iets aan te doen zijn?
>
> Als je hem met PHP wil binnenhalen, zou je via CURL alsnog cookies
> (redirects, en nog veel meer) kunnen accepeteren en zo de feed binnenhalen.

CURL, daar ga ik weer met mijn steenkolen PHP.
Wat is dat, hoe doe je dat in php?

Heb even in de naslag gekeken, maar het lijkt me een heel ingewikkeld proces
met installatie en allerlei toestand. Die schop is me de kloot niet waard.

--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Rik
27/01/07, 18:16
On Fri, 26 Jan 2007 13:22:28 +0100, Eduard Bekker <ebekk@orange.nl> wrote:
>>> Ook kan ik de url niet inlezen via php (zoals ik dat altijd doe met
>>> mijn
>>> o.z.j.b.f.php):
>>> $html = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
>>> file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));
>>>
>>> Waarom werkt het niet?
>>> En zou er iets aan te doen zijn?
>>
>> Als je hem met PHP wil binnenhalen, zou je via CURL alsnog cookies
>> (redirects, en nog veel meer) kunnen accepeteren en zo de feed
>> binnenhalen.
>
> CURL, daar ga ik weer met mijn steenkolen PHP.
> Wat is dat, hoe doe je dat in php?
>
> Heb even in de naslag gekeken, maar het lijkt me een heel ingewikkeld
> proces
> met installatie en allerlei toestand. Die schop is me de kloot niet
> waard.

Hangt er vanaf. Bij veel hosters is het al standaard geïnstalleerd. Het is
een handige tool om direct headers/cookies etc. van urls te acceptere, en
eigenlijk geemuleerd te browsen met PHP. Alles wat je met CURL kan kun je
ook wel met fsockopen(), verschillende regexen, en een paar honderd regels
code, maar CURL is toch donders veel makkelijker en extreem korter.
--
Rik Wasmus

Eduard Bekker
27/01/07, 18:16
Op de heugelijke dag van 26-01-2007 13:36, schreef "Rik" in
op.tmrhavglqnv3q9@misant.kabel.utwente.nl, <luiheidsgoeroe@hotmail.com>
pakweg het volgende:

> On Fri, 26 Jan 2007 13:22:28 +0100, Eduard Bekker <ebekk@orange.nl> wrote:
>>>> Ook kan ik de url niet inlezen via php (zoals ik dat altijd doe met
>>>> mijn
>>>> o.z.j.b.f.php):
>>>> $html = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
>>>> file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));
>>>>
>>>> Waarom werkt het niet?
>>>> En zou er iets aan te doen zijn?
>>>
>>> Als je hem met PHP wil binnenhalen, zou je via CURL alsnog cookies
>>> (redirects, en nog veel meer) kunnen accepeteren en zo de feed
>>> binnenhalen.

> Hangt er vanaf. Bij veel hosters is het al standaard geïnstalleerd. Het is
> een handige tool om direct headers/cookies etc. van urls te acceptere, en
> eigenlijk geemuleerd te browsen met PHP. Alles wat je met CURL kan kun je
> ook wel met fsockopen(), verschillende regexen, en een paar honderd regels
> code, maar CURL is toch donders veel makkelijker en extreem korter.

Hoe zou je

$rss_romp = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));

hunnen omzetten naar een binnenhalen met CURL?


--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Rik
27/01/07, 18:16
On Fri, 26 Jan 2007 14:06:11 +0100, Eduard Bekker <ebekk@orange.nl> wrote:

> Op de heugelijke dag van 26-01-2007 13:36, schreef "Rik" in
> op.tmrhavglqnv3q9@misant.kabel.utwente.nl, <luiheidsgoeroe@hotmail.com>
> pakweg het volgende:
>
>> On Fri, 26 Jan 2007 13:22:28 +0100, Eduard Bekker <ebekk@orange.nl>
>> wrote:
>>>>> Ook kan ik de url niet inlezen via php (zoals ik dat altijd doe met
>>>>> mijn
>>>>> o.z.j.b.f.php):
>>>>> $html = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
>>>>> file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));
>>>>>
>>>>> Waarom werkt het niet?
>>>>> En zou er iets aan te doen zijn?
>>>>
>>>> Als je hem met PHP wil binnenhalen, zou je via CURL alsnog cookies
>>>> (redirects, en nog veel meer) kunnen accepeteren en zo de feed
>>>> binnenhalen.
>
>> Hangt er vanaf. Bij veel hosters is het al standaard geïnstalleerd. Het
>> is
>> een handige tool om direct headers/cookies etc. van urls te acceptere,
>> en
>> eigenlijk geemuleerd te browsen met PHP. Alles wat je met CURL kan kun
>> je
>> ook wel met fsockopen(), verschillende regexen, en een paar honderd
>> regels
>> code, maar CURL is toch donders veel makkelijker en extreem korter.
>
> Hoe zou je
>
> $rss_romp = preg_replace("/(\015\012)|(\015)|(\012)/","\n",join("",
> file("http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp")));
>
> hunnen omzetten naar een binnenhalen met CURL?

Welja, ga ik je werk doen? :P

't Is dat ik ook wel wat CURL oefening kan gebruiken, dus vooruit.

Ik heb weinig zin om erachter te komen waar het cookie gezet wordt, maar
ga ik direct naar de feed wordt ik geweigerd. Laten we dus eerst de
normale pagina openen. Belangrijkste zaken:
1. We stellen CURL zo in dat we de return in een string kunnen krijgen.
2. We gaan de cookie-mogelijkheid toestaan, en cookies worden even in een
tijdelijk textbaestand opgeslagen.
3. We openen eerst gewoon www.cobouw.nl
4. Daarna openen we de feed.

Dit ziet er zo uit:
<?php
//initialiseren
$curl = curl_init();

//We willen een string, geen dump naar het scherm:
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

//standaard browser gedrag:
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);

//Cookie mogelijkheden toestaan
curl_setopt($curl,CURLOPT_COOKIESESSION,true); //nieuwe cookiesessie
curl_setopt($curl,CURLOPT_COOKIEFILE,'cobouw-cookie'); //tijdelijk bestand
met cookie-info

//eerste de normale pagina:
curl_setopt($curl,CURLOPT_URL,'http://www.cobouw.nl');
curl_exec($curl);

//dan de feed:
curl_setopt($curl,CURLOPT_URL,'http://www.cobouw.nl/cobouw/algemeen/rss_feed/rss_nieuws.jsp');
$feed = curl_exec($curl);
curl_close($curl);

//de replace die je zelf nog wilde:
$feed = preg_replace("/(\015\012)|(\015)|(\012)/","\n",$feed);
?>
--
Rik Wasmus

Eduard Bekker
27/01/07, 18:16
Hallo Rik!

Op de heugelijke dag van 26-01-2007 14:48, schreef "Rik" in
op.tmrknmlnqnv3q9@misant.kabel.utwente.nl, <

> luiheidsgoeroe@hotmail.com

Dat valt dus wel mee ;-)

>


pakweg het volgende:

> On Fri, 26 Jan 2007 14:06:11 +0100, Eduard Bekker <ebekk@orange.nl> wrote:
>
>> Op de heugelijke dag van 26-01-2007 13:36, schreef "Rik" in
>> op.tmrhavglqnv3q9@misant.kabel.utwente.nl, <luiheidsgoeroe@hotmail.com>

> Welja, ga ik je werk doen? :P

Ja. Hier zou ik overigens niet achter gekomen zijn. Vaak kan ik een heel
eind komen, maar zo informatic ben ik helaas niet.


> 't Is dat ik ook wel wat CURL oefening kan gebruiken, dus vooruit.

[inkp]

Prachtig, bravissimo! Werk in één keer.
Heb hem meteen weggezet in feedburner (om extra belasting van mijn eigen
server te voorkomen, zoals nu gebeurt, omdat de feeds voor Villamedia.nl
draai op een eigen domein).

http://feeds.feedburner.com/cobouw_tijdelijk

Als ze het zelf niet voor mekaar krijgen bij C*b*uw, kun je ze meteen helpen
en een rekening sturen.

Maar ja, ze zullen waarschijnlijk niet met php werken, want anders was dit
probleem waarschijnlijk ook niet ontstaan.

--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Rik
27/01/07, 18:16
On Fri, 26 Jan 2007 15:49:51 +0100, Eduard Bekker <ebekk@orange.nl> wrote:
> Maar ja, ze zullen waarschijnlijk niet met php werken, want anders was
> dit
> probleem waarschijnlijk ook niet ontstaan.

Mjah, dit probleem was enkel een scraping probleem natuurlijk. Naw werke
ze met een framework dat cookies verplicht stelt, en zijn ofwel vergeten
dat voor de feeds uit te schakelen, of ze hebben zo'n belabberd framework
dat het niet kan, tenzij ze de hele feed 'buiten' de site plaatsen.
--
Rik Wasmus

Rik
27/01/07, 18:17
On Fri, 26 Jan 2007 16:06:21 +0100, Rik <luiheidsgoeroe@hotmail.com> wrote:

> On Fri, 26 Jan 2007 15:49:51 +0100, Eduard Bekker <ebekk@orange.nl>
> wrote:
>> Maar ja, ze zullen waarschijnlijk niet met php werken, want anders was
>> dit
>> probleem waarschijnlijk ook niet ontstaan.
>
> Mjah, dit probleem was enkel een scraping probleem natuurlijk. Naw werke
> ze met een framework dat cookies verplicht stelt, en zijn ofwel vergeten
> dat voor de feeds uit te schakelen, of ze hebben zo'n belabberd
> framework dat het niet kan, tenzij ze de hele feed 'buiten' de site
> plaatsen.

Oh, en ze gebruiken java natuurlijk, te zien aan .jsp en:
X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1
date=200510231054)/Tomcat-5.5
--
Rik Wasmus