Jump to content
php.lv forumi

Dīvaina problēma ar lapas parsēšanu, konvertēšanu uz XML, un xpath


jurchiks

Recommended Posts

Skripts: http://pastebin.com/Pxc7TA48

Output: http://pastebin.com/wL9LwwPS

 

Testa skripts uzskatāmi parāda problēmu.

Ievelku produktu sarakstu no 220.lv ar curl, iztīru konvertēju saturu ar tidy uz XML, tad jau meklēju produktus ar xpath "//div[@class=fakeProductContainer]/h3/a".

Visās lapās viss strādā pareizi, izņemot tos URLus, kuri ir masīvā dotajā skriptā (izņemot pirmo, tas ir piemēram - kādam būtu jābūt outputam).

 

Kādam varētu būt nojausma, kas par sviestu? Es ievēroju, ka tajās lapās, kuras nestrādā, span class="product", kurš ir parent elements div class="fakeProductContainer", bija pārvietots un atradās iekš div class="fakeProductContainer". Nahuj tā notiek un nahuj tikai tajās dažās lapās?

Notērēju labu laiku bezmaz vai matus plēšot, bet man nav ne jausmas.

Edited by jurchiks
Link to comment
Share on other sites

Varbūt ka labāk ir nečakarēties ar konvertēšanu un izmantot DOMXPath.

Patestējot izskatās ka iet:

 

 
libxml_use_internal_errors(true);

foreach ($pages as $uri)
{

$page = request($uri);

//$page = cleanHTML($page);

//$pagexml = $convertHTMLToXML($page);

$dom = new DOMDocument();
$dom->loadHTML($page);

$xpath = new DOMXPath($dom);


$nodes = $xpath->query('//div[@class="fakeProductContainer"]/h3/a');

// Debug
foreach($nodes as $node) {
echo $node->nodeValue . '<br/>';
}

}
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...