/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Grab url fra bestemt href-attribut på webs~
Fra : Ace


Dato : 04-09-08 09:43

Hejsa

Okay, det her kommer nok til at lyde lidt kringlet

Jeg har brug for en måde hvorpå jeg via PHP kan grabbe url'en fra
href-attributten i f.eks. det 7. <a>-tag på et website (ikke mit
eget), og yderligere gemme denne url i en variabel som på en
eller anden måde kan integreres i nedenstående script, således at
url'en i variablen kan angives i $dom->loadHTMLFile("");.

<?php
$dom = new DomDocument();
$dom->loadHTMLFile("http://url.dk");
$text = $dom->getElementsByTagName("a");
print $text->item(0)->textContent;
?>

Har personlig ingen idé om hvordan dette kan gøres... dog skal
det tilføjes, at det ikke er strengt nødvendigt at der gøres brug
af ovenstående script, hvis bare samme effekt opnåes (at man kan
vælge et specifikt tag og grabbe tekst-indholdet deraf)
med førnævnte url-variabel inkluderet i et evt. nyt/andet script.

Håber nogen har et forslag til hvordan dette kan gøres - gerne
med tilhørende script-eksempel, for er endnu ikke så skrap til
PHP

Vh
Ace

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Bertel Lund Hansen (04-09-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 04-09-08 10:29

Ace skrev:

> Jeg har brug for en måde hvorpå jeg via PHP kan grabbe url'en fra
> href-attributten i f.eks. det 7. <a>-tag på et website (ikke mit
> eget), og yderligere gemme denne url i en variabel som på en
> eller anden måde kan integreres i nedenstående script, således at
> url'en i variablen kan angives i $dom->loadHTMLFile("");.

define ('MAGISKANTAL', 7-1);

$fil = 'http://servernavn.dk/mappenavn/filnavn.txt';
$content=file_get_contents($fil);
for ($nr=0; $nr<MAGISKANTAL; ++$nr) {
   $pos=strpos($content,'<a');
   if ($pos!==false) $content=substr($content,$pos+2);
}
$pos=strpos($content,'href=');
$anf=$content[$pos+5];
$longurl=substr($content,$pos+6);
$length=strpos($longurl,$anf);
$url=substr($longurl,0,$length);

Rutinen er ikke sikker. Den fejler hvis der ingen links er, og
den fejler hvis en href står med to forskellige anførselstegn.
Der er sikkert også andre problemer gemt deri.

--
Bertel
http://bertel.lundhansen.dk/      FIDUSO: http://fiduso.dk/

Ace (04-09-2008)
Kommentar
Fra : Ace


Dato : 04-09-08 11:10

Bertel Lund Hansen skrev:
> define ('MAGISKANTAL', 7-1);
>
> $fil = 'http://servernavn.dk/mappenavn/filnavn.txt';
> $content=file_get_contents($fil);
> for ($nr=0; $nr<MAGISKANTAL; ++$nr) {
>    $pos=strpos($content,'<a');
>    if ($pos!==false) $content=substr($content,$pos+2);
> }
> $pos=strpos($content,'href=');
> $anf=$content[$pos+5];
> $longurl=substr($content,$pos+6);
> $length=strpos($longurl,$anf);
> $url=substr($longurl,0,$length);
>
> Rutinen er ikke sikker. Den fejler hvis der ingen links er, og
> den fejler hvis en href står med to forskellige anførselstegn.
> Der er sikkert også andre problemer gemt deri.

Wow jeg er åbenbart mere PHP-ubegavet, end hvad jeg troede - for kan
ikke rigtig finde ud af, hvad jeg skal stille op med dit (ellers
udemærkede) svar, for at jeg kan opnå den ønskede effekt

Okay, jeg har imidlertid fundet ud af at det er href'en i <a>-tag nr.
9 på siden [ http://nyhederne.tv2.dk/list.php ] som jeg gerne vil
grabbe url'en fra. Hertil formoder jeg, at det blot er tallet 7 i
define ('MAGISKANTAL', 7-1); der skal ændres til 9, ikk'?
Men er txt-fil-url'en, som du har givet som du har angivet som
eksempel i $fil, en tom txt-fil som jeg skal lægge på min server?...
og hvordan angiver jeg iøvrigt url'en
(http://nyhederne.tv2.dk/list.php) hvorfra href-url'en skal grabbes?
- er tanken, at mit tidligerenævnte script på en eller anden måde, kan
integreres med dit script-eksempel, eller hvordan?

En anden ting er, hvordan kan en href stå med to forskellige
anførselstegn?

Beklager jeg er så tung at danse med.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (04-09-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 04-09-08 11:54

Ace skrev:

> Okay, jeg har imidlertid fundet ud af at det er href'en i <a>-tag nr.
> 9 på siden [ http://nyhederne.tv2.dk/list.php ] som jeg gerne vil
> grabbe url'en fra. Hertil formoder jeg, at det blot er tallet 7 i
> define ('MAGISKANTAL', 7-1); der skal ændres til 9, ikk'?

Jo, det var planen. Jeg har angivet det som 7 minus 1 fordi det
vil fange den 7. url. Det vil have samme effekt at skrive 6, men
det er måske nemmere at se forbindelsen på den anden måde.

> Men er txt-fil-url'en, som du har givet som du har angivet som
> eksempel i $fil, en tom txt-fil som jeg skal lægge på min server?

Nej, det er bare en eksempelfil. Hvis den HTML-fil duvil
støvsuge, hedder "index.html", skal du skrive det som filnavn.

> og hvordan angiver jeg iøvrigt url'en
> (http://nyhederne.tv2.dk/list.php) hvorfra href-url'en skal grabbes?

$fil = 'http://nyhederne.tv2.dk/list.php'; // i mit eksempel

> En anden ting er, hvordan kan en href stå med to forskellige
> anførselstegn?

Hvis det er en klotmikkel der har skrevet koden eller den er
genereret af et Microsoft-program, så kan man ikke vide sig
sikker.

--
Bertel
http://bertel.lundhansen.dk/      FIDUSO: http://fiduso.dk/

Ace (04-09-2008)
Kommentar
Fra : Ace


Dato : 04-09-08 12:20

Bertel Lund skrev:
> Jo, det var planen. Jeg har angivet det som 7 minus 1 fordi det
> vil fange den 7. url. Det vil have samme effekt at skrive 6, men
> det er måske nemmere at se forbindelsen på den anden måde.
>
> Nej, det er bare en eksempelfil. Hvis den HTML-fil duvil
> støvsuge, hedder "index.html", skal du skrive det som filnavn.
>
> $fil = 'http://nyhederne.tv2.dk/list.php'; // i mit eksempel
>
> Hvis det er en klotmikkel der har skrevet koden eller den er
> genereret af et Microsoft-program, så kan man ikke vide sig
> sikker.

Hehe, ja man kan selvfølgelig ikke vide når det er tv2

Okay er det her så rigtig nok?

<?php
define ('MAGISKANTAL', 9-1);

$fil = 'http://nyhederne.tv2.dk/list.php';
$content=file_get_contents($fil);
for ($nr=0; $nr<MAGISKANTAL; ++$nr) {
$pos=strpos($content,'<a');
if ($pos!==false) $content=substr($content,$pos+2);
}
$pos=strpos($content,'href=');
$anf=$content[$pos+5];
$longurl=substr($content,$pos+6);
$length=strpos($longurl,$anf);
$url=substr($longurl,0,$length);
?>
TEST: http://clubace.dk/test.php

I såfald er der nok en lille fejl, da der ikke rigtig sker noget

Her er et brudstykke af det som jeg vil grabbe fra, hvoraf det er
/article.php/id-15127922.html jeg er interesseret i:
[ http://nyhederne.tv2.dk/list.php ]

<tr class="newsList">
<td class="newsListCheckbox"><input type="checkbox" name="id[]"
value="15127922"></td>
<td class="newsListTime" width="44">13:07</td>
<td width="436" class="newsListTitle"><a
href="/article.php/id-15127922.html" class="newsListLink">R&aring;ddent
tag p&aring; plejecenter gav vand i stuen</a></td>
</tr>

Ace

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Bertel Lund Hansen (04-09-2008)
Kommentar
Fra : Bertel Lund Hansen


Dato : 04-09-08 13:17

Ace skrev:

> href="/article.php/id-15127922.html" class="newsListLink">R&aring;ddent

Når adressen angives relativt, er du nødt til selv at indføje det
der mangler. Det skal formodentlig være:

http://nyhederne.tv2.dk/ + article.php/id-15127922.html

--
Bertel
http://bertel.lundhansen.dk/      FIDUSO: http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste