我試圖使用HTML Agility Pack在Google上查找特定關鍵字,然後檢查鏈接的節點,直到找到我的網站字符串url,然後解析我爲Google提供的節點的innerHTML排行。Agility Pack XPath問題
我對Agility Pack比較陌生(就像昨天我開始真的看過它一樣),所以我希望我可以得到一些幫助。當我在下面進行搜索時,每次都會在我的Xpath查詢中遇到失敗。即使我插入一些像SelectNodes(「// * [@ id ='rso']」)那樣簡單的東西。這是我做錯了嗎?
private void GoogleScrape(string url)
{
string[] keys = keywordBox.Text.Split(',');
for (int i = 0; i < keys.Count(); i++)
{
var raw = "http://www.google.com/search?num=100&q=";
string search = raw + HttpUtility.UrlEncode(keys[i]);
var webGet = new HtmlWeb();
var document = webGet.Load(search);
loadtimeBox.Text = webGet.RequestDuration.ToString();
var ranking = document.DocumentNode.SelectNodes("//*[@id='rso']");
if (ranking != null)
{
googleBox.Text = "Something";
}
else
{
googleBox.Text = "Fail";
}
}
}
你得到了什麼類型的「失敗」? – alexn 2011-06-10 18:38:03
在.//*[@id='rso']標記下查找內容時,var排名總是返回null,這就是所有搜索結果在頁面返回時都沒有多個結果。 .//*[@id='resultStats']返回「Something」,但其他標籤中的確切等效項不會返回 – Danejir 2011-06-10 18:44:24
另外,我可以使用Regex表達式來查找相同的「節點」,所以我知道它們顯示爲那裏並且應該可以在Xpath方向找到,它只是沒有返回結果 – Danejir 2011-06-10 19:34:02