WP8.1求教如何解析某查询网址的内容

皓****负 UID.300596
2015-04-03 发表

某个网页有固定的DIV,DIV里有固定的列表内容,以前C#用webbrowser控件的时候可以直接用wb1.document.getelement()等方法来解析,但是WP8.1里貌似只找到webview控件,这个控件没有上述说的方法,特在此求教,谢谢了。

标签: 如何

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
qiqiminmin UID.638527
2015-04-04 回复

本帖最后由 qiqiminmin 于 2015-4-4 11:53 编辑

用webrequest 读取,
然后用 Html Agility Pack解析,找到特定的div下就好了。

假设,这个网站返回是这样的,我想找到<div style="width:160px; height:170px; float:left;" align="center">这个div
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<div style="padding:8px;" >
<div style="width:160px; height:170px; float:left;" align="center"><img src="/sc_img/zhanwu.jpg" width="120" height="130" class="tupian"></div>
<li class="about_lin2"><font color="#999999">姓  名:</font><a href="http://www.79china.org/lieshi/lieshi_1.htm" title="左正强"><b></b></a>  <font color="#999999"></font></li>
<li class="about_lin2"><font color="#999999">籍  贯:</font></li>
<li class="about_lin2"><font color="#999999">:</font></li>
<li class="about_lin2"><font color="#999999">入伍时间:</font>   <font color="#999999">牺牲时间:</font></li>
</div> <hr size="1" noshade="noshade" style="border:1px #D8D8D8 dotted; width:700px;"/>
<div style="float:left; width:667px; padding-left:23px; padding-bottom:20px;text-align:justify; text-justify:inter-ideograph; line-height:24px;">
</div>
</div>
</body>
</html>

这么做就行了
WebRequest request = WebRequest.Create("www.163.com");
var res = await request.GetResponseAsync();
var stream = res.GetResponseStream();
var reader = new System.IO.StreamReader(stream,System.Text.Encoding.UTF8);
var text = reader.ReadToEnd();

如果不喜欢这个,就把 text = webView.htmltext;


HtmlAgilityPack.HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(text);

var docNode = doc.DocumentNode;
var findres = docNode.Descendants("div").FirstOrDefault(p => p.GetAttributeValue("style", "") == "width:160px; height:170px; float:left;");
if (findres != null)
{ }

//如果想找列表的每一项
var lis= docNode.Descendants("li").FirstOrDefault(p => p.GetAttributeValue("att", "") == "...");

皓****负 UID.300596
2015-04-04 回复

Quoteqiqiminmin 发表于 2015-4-4 11:39
用webrequest 读取,
然后用 Html Agility Pack解析,找到特定的div下就好了。



非常感谢指点!!!

暗****手 UID.379158
2015-04-09 回复

我更喜欢用正则表达式,虽然执行效率可能会稍微低一些。。

inorixu UID.3541
2015-04-16 回复

Quote***链接停止解析***
我更喜欢用正则表达式,虽然执行效率可能会稍微低一些。。


同喜欢,虽然有的时候知道这不理智 = =尤其是有RSS时候QAQ

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报