如何从iframe获取数据

时间:2014-06-27 12:20:28

标签: c# iframe web-scraping html-agility-pack

 <td>
   <iframe>
     #document
       <html>
         <body>
           <table>
             <tbody>
               <tr>..<tr>
                <tr>
                   <td>
<select id="selYear" onchange="document.getElementById('selCat').selectedIndex=0;  
document.g…tedIndex=0;document.getElementById('frmFindParts').submit();"
 name="year">
 <option value=""></option>
 <option value="2014"></option>
                   </td>
                </tr>
             </tbody>
       </table><body></html></iframe></tr>

我需要选项值内的数据,输出 2014 。我正在使用c#。我确实需要xpath。 这是我的代码

var html = PageRetriever.ReadFromServer(pqi.URL, false);
            var htmlDoc = new HtmlDocument();
            htmlDoc.LoadHtml(html);
            var tags = htmlDoc.DocumentNode.SelectNodes("Xpath please");

2 个答案:

答案 0 :(得分:1)

var options = htmlDoc.DocumentNode.SelectNodes("//option")
                .Select(o => o.Attributes["value"].Value)
                .ToList();

答案 1 :(得分:1)

您可以尝试这种方式:

var result = htmlDoc.DocumentNode
                .SelectNodes("//iframe//table//select[@id='selYear']/option[@value!='']")
                .Select(o => o.Attributes["value"].Value);
//this will print : 2014
foreach (string s in result)
{
    Console.WriteLine(s);
}