Vsetky odkazy zo stranky – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vsetky odkazy zo stranky – PHP – Fórum – Programujte.comVsetky odkazy zo stranky – PHP – Fórum – Programujte.com

 

nord0
Návštěvník
6. 2. 2017   #1
-
0
-

Caute, potrebujem od Vas radu :)

Snazim sa dostat vsetky <a> zo stranky ale mam problem

#1 //$html = file_get_contents('http://www.chytrazena.cz/zena-na-md-a-financovani-domacnosti-37128.html');
#2 //$html = file_get_contents('http://moneymag.cz/pujcky-sporeni/7602-rychle-pujcky-bez-registru-a-zastavy-aneb-vse-co-jste-o-nich-chteli-vedet');
#3 //$html = file_get_contents('http://stavba.tzb-info.cz/15300-pujcka-na-rekonstrukci-kdy-o-ni-zacit-uvazovat-a-jak-ji-vybrat');

$dom = new DOMDocument;

@$dom->loadHTML($html);

$links = $dom->getElementsByTagName('a');

foreach ($links as $link)
{
	echo '<b>',$link->nodeValue , '</b><br>';
	echo $link->getAttribute('href'), '<br><br>';
}

mam aj nejake priklady. Pri stranke cislo 1 nevypise nic. Pri stranke cislo 2 vypis vyzera tak ako si ho predstavujem, pri stranke cislo 3 su niekde divne znaky, mozno problem s kodovanim. 
Neviem prist na to, preco je pri kazdej stranke iny vysledok. Co mi unika ?

Co je na strankach ine a co by som mal osetrit aby som sa dostal k vysledku na kazdej stranke ? 

Za kazdu pomoc dakujem :)

Nahlásit jako SPAM
IP: 158.193.103.–
gna
~ Anonymní uživatel
1891 příspěvků
6. 2. 2017   #2
-
0
-

Nejdřív zkus odstranit @ a podívat se na ty chyby.

Nahlásit jako SPAM
IP: 213.211.51.–
nord0
Návštěvník
6. 2. 2017   #3
-
0
-

#2 gna
Uplne som na to @ zabudol :) dakujem

Nahlásit jako SPAM
IP: 158.193.103.–
peter
~ Anonymní uživatel
4014 příspěvků
7. 2. 2017   #4
-
0
-

Tez je dobre pridat si error_reporting, pokud stale nic nevypisuje.
Treba je problem v html strance. XML parser napriklad vyzaduje prisne spravne xml ukonceni tagu a syntax. Jakoze zapomenuta uvozovka " nebo nezakodovany znak > < je problem.
Pridej link na html stranku, co dela problem.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:3dbe:91...–
nord0
Návštěvník
7. 2. 2017   #5
-
0
-

   

function fread_url($url, $ref="")
    {
        if(function_exists("curl_init"))
		{
            $ch = curl_init();
            $user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; ".
                          "Windows NT 5.0)";
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
            curl_setopt( $ch, CURLOPT_HTTPGET, 1 );
            curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
            curl_setopt( $ch, CURLOPT_FOLLOWLOCATION , 1 );
            curl_setopt( $ch, CURLOPT_FOLLOWLOCATION , 1 );
            curl_setopt( $ch, CURLOPT_URL, $url );
            curl_setopt( $ch, CURLOPT_REFERER, $ref );
            curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
            $html = curl_exec($ch);
            curl_close($ch);
        }
        else
		{
            $hfile = fopen($url,"r");
            if( $hfile )
			{
                while(!feof( $hfile ))
				{
                    $html .= fgets( $hfile, 1024 );
                }
            }
        }
        return $html;
    }

Vyriesil som to takto, funguje pre vsetky stranky.. Teraz mam problem s kodovanim cz znakov :) 

pri iconv('iso-8859-1', 'utf-8', $text) az iconv('iso-8859-15', 'utf-8', $text) niektore znaky neopravi

pri iconv('windows-1250', 'UTF-8', $text) az iconv('windows-1252', 'UTF-8', $text) tiez nie.. 

Ako sa riesi takyto problem ? Ako zobrazit vsetky CZ znaky tak kao maju byt zobrazene? Na stranke sa zobrazuju spravne. 

napr tu 

http://moneymag.cz/pujcky-sporeni/7602-rychle-pujcky-bez-registru-a-zastavy-aneb-vse-co-jste-o-nich-chteli-vedet

dakujem :)
 

Nahlásit jako SPAM
IP: 158.193.99.–
peter
~ Anonymní uživatel
4014 příspěvků
8. 2. 2017   #6
-
0
-

podle meta je to <meta charset="utf-8">
podle prohlizece je to unicode
Proc bys to konvertoval z unicode na unicode? :)
To by chtelo vedet, jake kodovani tam davas do php header() ty. Default kodovani mozna neni takove, jake sis myslel, ze tam mas.

Nahlásit jako SPAM
IP: 2001:718:2601:26c:ec50:db...–
Kit+15
Guru
8. 2. 2017   #7
-
0
-

#5 nord
Podle hlavičky HTTP: 

Content-Type: text/html; charset=utf-8

je to jasné UTF-8. Hlavičky META v kódu HTML nejsou směrodatné.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 27 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý