impossível copiar conteúdo de um site
Estou tentando descartar algum conteúdo de um site, mas o código abaixo não está funcionando (não mostra nenhuma saída). aqui está o código
$url="some url";
$otherHeaders=""; //here i am using some other headers like content-type,userAgent,etc
some curl to get the webpage
...
..
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$content=curl_exec($ch);curl_close($ch);
$page=new DOMDocument();
$xpath=new DOMXPath($page);
$content=getXHTML($content); //this is a tidy function to convert bad html to xhtml
$page->loadHTML($content); // its okay till here when i echo $page->saveHTML the page is displayed
$path1="//body/table[4]/tbody/tr[3]/td[4]";
$path2="//body/table[4]/tbody/tr[1]/td[4]";
$item1=$xpath->query($path1);
$item2=$xpath->query($path2);
echo $item1->length; //this shows zero
echo $item2->length; //this shows zero
foreach($item1 as $t)
echo $t->nodeValue; //doesnt show anything
foreach($item2 as $p)
echo $p->nodeValue; //doesnt show anything
Tenho certeza de que há algo errado com o descrito acimaxpath
código. axpaths
estão corretas. Eu verifiquei o acimaxpaths
comFirePath (a firefox addon)
. Eu sei que estou perdendo algo muito bobo aqui, mas eu não consigo entender. Por favor ajude. Verifiquei um código semelhante para raspar links deWikipedia
(definitivamente oxpaths
são diferentes) e funciona bem. Então eu não entendo por que o código acima não funciona para o outroURLs
. Estou limpando oHTML
contente comTidy
então eu não há um problema com o xpath não geeting o HTML certo? Eu verifiquei o comprimento donodelist
depois de$item1=$xpath->query($path1)
qual é0
, o que significa que algo está errado com$xpath->query
porque oxpaths
estão corretos, como verifiquei comFirePath
Eu modifiquei meu código um pouco, conforme indicado e useiloadXML
ao invés deloadHTML
. mas isso me dá erro comoEntity 'nbsp' not defined in Entity
então eu usei olibxml
opçãoLIBXML_NOENT
para substituir entidades, mas ainda assim os erros permanece