HtmlAgilityPack 学习和笔记
2014-07-23 16:24
363 查看
介绍:
http://www.cnblogs.com/bomo/archive/2013/01/28/2879361.html
实战 c#获取外网ip
网址:http://ip138.com/
如图:分析
有个iframe 实际上查看网页源代码是没有ip的 原因浏览器引擎解析会解析src 地址:
所以我们先获取iframe的url 在根据这个地址 取ip (当然也有人说直接用这个url 不好吗?这里考虑的是怕他变化 容错性好一点 将来)
代码:
结果:
http://www.cnblogs.com/bomo/archive/2013/01/28/2879361.html
实战 c#获取外网ip
网址:http://ip138.com/
如图:分析
有个iframe 实际上查看网页源代码是没有ip的 原因浏览器引擎解析会解析src 地址:
所以我们先获取iframe的url 在根据这个地址 取ip (当然也有人说直接用这个url 不好吗?这里考虑的是怕他变化 容错性好一点 将来)
代码:
static void Main(string[] args) { string content = GetHtmlStr("http://www.ip138.com/", Encoding.GetEncoding("gb2312")); var ulr = ""; HtmlDocument document = new HtmlDocument(); document.LoadHtml(content); HtmlNodeCollection targetNodeCollection = document.DocumentNode.SelectNodes(@"//iframe [1]");//取iframe DOM 第一个 if (targetNodeCollection != null && targetNodeCollection.Count == 1) { ulr = targetNodeCollection[0].GetAttributeValue("src", "");//类似jq $(xxx).attr("scr") 对应javascript getattribute } content = GetHtmlStr(ulr, Encoding.GetEncoding("gb2312")); document.LoadHtml(content); HtmlNodeCollection tempText = document.DocumentNode.SelectNodes(@"//center [1]");//取center DOM 第一个 Console.WriteLine(tempText[0].InnerText);//这里就没有过滤了 } public static string GetHtmlStr(string url, Encoding en) { try { WebRequest rGet = WebRequest.Create(url); rGet.Timeout = 30000; using (WebResponse rSet = rGet.GetResponse()) { using (StreamReader reader = new StreamReader(rSet.GetResponseStream(), en)) { return reader.ReadToEnd(); } } } catch (WebException) { //连接失败 return null; } }
结果:
相关文章推荐
- 【C#】通过HtmlAgilityPack+XPath来优化网页采集学习笔记
- HtmlAgilityPack基础知识学习笔记
- Html Agility Pack学习(一):HtmlAgilityPack类的简单应用
- 【工作笔记0006】C#调用HtmlAgilityPack类库实现网页数据抓取
- Html Agility Pack学习(二):与Firefox插件Xpath/Firebug的结合应用
- 爬虫技术 -- 进阶学习(九)使用HtmlAgilityPack获取页面链接(附c#代码及插件下载)
- 爬虫技术 -- 进阶学习(十)网易新闻页面信息抓取(htmlagilitypack搭配scrapysharp)
- HTML 简介(学习笔记一)
- JavaMail学习笔记-2(HTML格式的邮件发送)
- CSS学习笔记-附加篇( CSS+JS实现的选项卡效果(html组件))
- Struts学习笔记: Html标签库学习(Form标签)
- HtmlAgilityPack 抓取中文页面乱码问题的解决方案
- Treating HTML like XML using HtmlAgilityPack, and doing it inside of an XSLT too [转载]
- Treating HTML like XML using HtmlAgilityPack, and doing it inside of an XSLT too [转载]
- HTML学习笔记:图像标记
- html学习笔记2
- HTML学习笔记
- HTML语言学习笔记之四
- 使用HtmlAgilityPack更好的HTML分析和验证
- HTML学习笔记:链接标记