2017-07-22 26 views
0

我想修改下面的代碼來刮從www.itoworld.com/careers的工作。作業採用表格格式,並返回所有<'td>值。Web刮項目寫太多的信息

我相信它來自行:

var parentnode = node.ParentNode.ParentNode.ParentNode.FirstChild.NextSibling 

不過,我想它來寫:

<a class="std-btn" href="http://www.itoworld.com/office-manager/">Office Manager</a> 

目前,它正在寫

<a href='http://www.itoworld.com/office-manager/' target='_blank'>Office ManagerOffice & AdminCambridgeFind out more</a> 

我打算「畜生迫使'修改輸出以消除不必要的額外,但希望有一個更聰明的方法來做到這一點。有沒有辦法例如在被調用後刪除第二個和第三個父節點? (所以它們不會寫的嗎?)下面

​​

爲了完整是ParseHtmlContainingText

public string ParseHtmlContainingText(string htmlString) 
    { 
     return Regex.Replace(Regex.Replace(WebUtility.HtmlDecode(htmlString), @"<[^>]+>|&nbsp;", ""), @"\s{2,}", " ").Trim(); 
    } 

回答

0

的定義,你只需要創建一個「名字節點」和使用,爲您解析方法。

我用這段代碼測試過,它對我很有用。

  var parentnode = node.ParentNode.ParentNode.ParentNode.FirstChild.NextSibling; 
      var nameNode = parentnode.FirstChild; 

      Links l = new Links(); 
      l.Name = ParseHtmlContainingText(nameNode.InnerText); 
      l.Link = node.GetAttributeValue("href", ""); 
+0

這很完美。非常感謝你。我會試着更好地理解遺產。 –