| 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: 10 let
|
|||
0