2014-09-10 89 views
0

我試圖建立使用的Symfony 2的DOM履帶黑客新聞刮刀過濾[1]遇到問題與XPath

當我嘗試用鍍鉻插件[2],它的工作原理的XPath。但是,當我嘗試在我刮我不斷收到The current node list is empty.

這裏是我的刮板代碼:

$crawler1 = $client1->request('GET','https://news.ycombinator.com/item?id=8296437'); 
$hnpost->selftext = $crawler1->filterXPath('/html/body/center/table/tbody/tr[3]/td/table[1]/tbody/tr[4]/td[2]')->text(); 

[1] http://api.symfony.com/2.0/Symfony/Component/DomCrawler/Crawler.html#method_filter [2] https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl?hl=en-US

+0

可能的重複[爲什麼我的XPath查詢(抓取HTML表)只能在Firebug中工作,但不是我正在開發的應用程序?](http://stackoverflow.com/questions/18241029/why-does-my -xpath查詢刮-HTML的表只,工作在螢火,但並非對) – 2014-10-12 17:41:31

回答

1

如果問題是,我認爲它是什麼,我已經被這一次毆打過幾次了。 Chrome會將任何缺少的<tbody>標記隱式添加到DOM,因此如果您複製XPath或CSS路徑,則可能還會複製源文檔中不一定存在的標記。嘗試查看頁面的源代碼,並查看瀏覽器控制檯報告的DOM是否與原始源代碼HTML相對應。如果<tbody>標籤不存在,請務必在您的filterXPath()呼叫中排除它們。