Autor | Zpráva | ||
---|---|---|---|
Picík Profil * |
#1 · Zasláno: 26. 7. 2016, 17:30:47
Ahoj,
předem říkám že to co dělám je neslušné a vím to. Snažím se z cizí stránky zobrazit čast na mé stránce. Pomocí tohoto scriptu: <?php $url = "http://lyrics.wikia.com/wiki/Dolly_Parton:Dumb_Blonde"; $agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_URL,$url); $result=curl_exec($ch); // zde je celý obsah webu z $url var_dump($result); ?> Potřeboval bych dostat text uzavřený do <div class="lyricbox"></div>
Zkoušel jsem toto: $url = "http://lyrics.wikia.com/wiki/Dolly_Parton:Dumb_Blonde"; $agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_URL,$url); $result=curl_exec($ch); // zde je celý obsah webu z $url if(!preg_match('~<div class="lyricbox"[^>]*>(.*?)</div>~si', $result, $matches)) return; $matches= $matches[1]; var_dump($matches); Ale nevrátí mi to nic. Asi vím kde je problém a to že před tím divem je tato část kodu: <noscript><div class='gracenote-header'>You must enable javascript to view this page. This is a requirement of our licensing agreement with music Gracenote.</div><style type='text/css'>.lyricbox{display:none !important;}</style></noscript> Je možné to nějak vyřešit? |
||
nightfish Profil |
if(!preg_match("~<div class='lyricbox'[^>]*>(.*?)</div>~si", $result, $matches)) return; |
||
Picík Profil * |
#3 · Zasláno: 26. 7. 2016, 17:41:12
nightfish:
Díky. nenapadlo mě že to může být v uvozovkách. |
||
TomášK Profil |
Máš pravdu, parsovat HTML pomocí regulárních výrazů je opravdu neslušné, slušný člověk by to dělal HTML parserem :-) Problém je v uvozovkách
<div class="lyricbox"></div> <div class='lyricbox'></div> Edit: s křížkem po funuse koukám |
||
Časová prodleva: 7 let
|
0