簡體   English   中英

第一個HTML節點內的C#htmlAgility Webscrape html節點

[英]C# htmlAgility Webscrape html node inside the first Html node

我正在嘗試訪問此網站上的這些節點。 http://bcres.paragonrels.com/publink/default.aspx?GUID=2033c143-cdf1-46b4-9aac-2e27371de22d&Report=Yes

但是,它們似乎在初始文檔中的輔助HTML文檔中。 我很困惑如何訪問輔助html路徑,然后解析通過

這是節點之一的示例。

<div style="top:219px;left:555px;width:45px;height:14px;" id="" class="mls29">2</div>

我正在使用htmlAgility pack,並且每次嘗試訪問Div時都收到null。 我嘗試沿着節點向下工作,但沒有成功。

任何幫助或查找必要信息的地方都可以解決這個問題

var webGet = new HtmlWeb();
var document =    webGet.Load("http://bcres.paragonrels.com/publink/default.aspx?GUID=d27a1d95- 623d-4f6a-9e49-e2e46ede136c&Report=Yes");
var divTags = document.DocumentNode.SelectNodes("/html");
var text = document.DocumentNode.InnerText;
MessageBox.Show(text);

如果您訪問以下網址,則可以抓取數據:

http://bcres.paragonrels.com/publink/Report.aspx?outputtype=HTML&GUID=2033c143-cdf1-46b4-9aac-2e27371de22d&ListingID=262103824:0&Report=Yes&view=29&layout_id=63

HtmlWeb w = new HtmlWeb();
var hd = w.Load("http://bcres.paragonrels.com/publink/Report.aspx?outputtype=HTML&GUID=2033c143-cdf1-46b4-9aac-2e27371de22d&ListingID=262103824:0&Report=Yes&view=29&layout_id=63");
var presentedBy = hd.DocumentNode.CssSelect(".mls23.at-phone-link");
if (presentedBy != null)
{
    Console.WriteLine(presentedBy.FirstOrDefault().InnerText);
}

例如,抓取Presented By字段:

在此處輸入圖片說明

備注:

  1. 我將ScrapySharp nuget包與HtmlAgilityPack一起使用,因此我可以使用css選擇器而不是xpath表達式進行抓取-我發現這很容易做到。

  2. 您要抓取的網址是您的問題。 我正在抓取頁面加載后執行的最后一個get請求,如下面的屏幕截圖所示,使用Firefox開發人員工具分析了網站訪問量/網絡請求/響應:

在此處輸入圖片說明

我還不能確定到底是誰/什么觸發了這個http請求(可能是通過javascript代碼,可能是通過主文檔中請求的框架html之一(啟用框架的))。

如果您只有幾個這樣的網址需要抓取,那么即使手動提取正確的網址也將是一種選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM