asp.net如何抓取AJAX网页数据!最好可以详细点!

qq_37376544 2017-03-01 10:54:57
asp.net如何抓取AJAX网页数据!最好可以详细点!本人小白啥都不懂麻烦各位大神!我这里有抓取静态页面的代码!!不知可否帮我修改一下!
public string getDataForZjjd(string v_url)
{
try
{

HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument htmlDoc = htmlWeb.Load(v_url);


//HtmlNodeCollection htmlNodeColl = htmlDoc.DocumentNode.SelectNodes("//ul[@id='newest-news']");
//HtmlNodeCollection htmlNodeColl = htmlDoc.DocumentNode.SelectNodes("//ul[@class='jin-newsList']");


HtmlNodeCollection htmlNodeColl = htmlDoc.DocumentNode.SelectNodes("//ul[@id='J_newsList']");

if (htmlNodeColl == null)
{
return "查询不到数据";
}
HtmlNodeCollection liNodeColl = htmlNodeColl[0].SelectNodes("li");

StringBuilder sb = new StringBuilder();
for (int i = liNodeColl.Count - 1; i >= 0; i--)
{
HtmlNode hn = HtmlNode.CreateNode(liNodeColl[i].OuterHtml);
//string author = hn.SelectSingleNode("//div[@class='author_time']").ChildNodes[1].InnerText; //作者
//string reledate = hn.SelectSingleNode("//div[@class='author_time']").ChildNodes[3].InnerText; //发布时间
//string pic = hn.SelectSingleNode("//div[@class='timg col-sm-3 ']").ChildNodes[1].ChildNodes[0].Attributes[0].Value;//封面
//string title = hn.SelectSingleNode("//h4").InnerText; //标题
//string show = hn.SelectSingleNode("//p[@class='news-p']").InnerText; //简介说明
//string url = hn.SelectSingleNode("//h4").ChildNodes[0].Attributes[0].Value; //内容页URL
//string content = getDataForContent("http://news.jin10.com" + url, "zjjd"); //正文


string author = ""; //作者

HtmlNode reledate3 = hn.SelectSingleNode("//*[@class='jin-newsList__count']"); //发布时间
string reledate2 = hn.SelectSingleNode("//*[@class='jin-newsList__count']").ChildNodes[0].InnerText; //发布时间

string reledate = hn.SelectSingleNode("//*[@class='jin-newsList__count']").ChildNodes[2].InnerText; //发布时间
string pic = hn.SelectSingleNode("//*[@class='J_lazyImg']").Attributes["data-original"].Value;//封面
string title = hn.SelectSingleNode("//*[@class='jin-newsList__title']").InnerText; //标题
string show = hn.SelectSingleNode("//*[@class='jin-newsList__title']").InnerText; //简介说明
string url = hn.SelectSingleNode("a").Attributes["href"].Value; //内容页URL
string content = getDataForContent("http://news.jin10.com" + url, "zjjd"); //正文

content = tihuan(content);
huibaoNews HBNmodel = HBNBLL.GetModelBytype("富豪区", "专家解读", title);
if (HBNmodel == null)
{
HBNmodel = new huibaoNews();
HBNmodel.addtime = DateTime.Now;

HBNmodel.zuozhe = author;
HBNmodel.shijian = reledate;
HBNmodel.biaotu = pic;
HBNmodel.title = title;
HBNmodel.jianjie = show;
HBNmodel.neirong = content;

HBNmodel.state = 2;
HBNmodel.type = "专家解读";
HBNmodel.dalei = "富豪区";
int ct = HBNBLL.Add(HBNmodel);
if (ct > 0)
{
HBNmodel = HBNBLL.GetModel(ct);
HBNmodel.paixu = ct;
HBNBLL.Update(HBNmodel);
}
};
}
return "采集成功";

}
catch (Exception ex)
{
return "读取出错-->" + ex.ToString();
}
}



//获取文章内容 wh,gjtt,gjs
public string getDataForContent(string v_url, string type)
{
string content = "";
try
{
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument htmlDoc = htmlWeb.Load(v_url);
if (type == "gjtt")
{
HtmlNodeCollection htmlNodeColl = htmlDoc.DocumentNode.SelectNodes("//div[@class='wenzhang_my_area']");
if (htmlNodeColl == null)
{
return "查询不到数据";
}
HtmlNode href = htmlNodeColl[0].SelectSingleNode("p");
content = href.InnerHtml;
}
if (type == "wh")
{
HtmlNodeCollection htmlNodeColl = htmlDoc.DocumentNode.SelectNodes("//div[@class='yjl_fx168_article_zhengwen']");
if (htmlNodeColl == null)
{
return "查询不到数据";
}
HtmlNode href = htmlNodeColl[0].SelectSingleNode("//div[@class='TRS_Editor']");
content = href.InnerHtml;
}
if (type == "gjs")
{
HtmlNodeCollection htmlNodeColl = htmlDoc.DocumentNode.SelectNodes("//div[@class='jy_fx168_gjs_content clearfix']");
if (htmlNodeColl == null)
{
htmlNodeColl = htmlDoc.DocumentNode.SelectNodes("//div[@class='yjl_fx168_article_zhengwen']");
if (htmlNodeColl == null)
{
return "查询不到数据";
}
}
HtmlNode href = htmlNodeColl[0].SelectSingleNode("//div[@class='TRS_Editor']");
content = href.InnerHtml;
}
if (type == "zjjd")
{
HtmlNodeCollection htmlNodeColl = htmlDoc.DocumentNode.SelectNodes("//div[@class='jin-news-article_content']");
if (htmlNodeColl == null)
{
return "查询不到数据";
}
HtmlNode href = htmlNodeColl[0];
content = href.InnerHtml;
}
if (type == "gntt")
{
HttpWebRequest req;
req = WebRequest.Create(new Uri(v_url)) as HttpWebRequest;
req.Method = "GET";
WebResponse rs = req.GetResponse();
Stream rss = rs.GetResponseStream();
HtmlDocument Doc = new HtmlDocument();
Doc.Load(rss);
HtmlNodeCollection htmlNodeColl = Doc.DocumentNode.SelectNodes("//div[@class='art_contextBox']");
if (htmlNodeColl == null)
{
return "查询不到数据";
}
HtmlNode href = htmlNodeColl[0];
content = href.InnerHtml;
}

//移除A标签
content = Regex.Replace(content, @"<a\s*[^>]*>", "", RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"</a>", "", RegexOptions.IgnoreCase);
}
catch (Exception ex)
{
return "读取出错-->" + ex.ToString();
}
return content;
}

tihuanziBLL thzbll = new tihuanziBLL();

public string tihuan(string content)
{
DataSet ds = thzbll.GetList("");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
content = content.Replace(ds.Tables[0].Rows[i]["yuanzi"].ToString(), ds.Tables[0].Rows[i]["replayzi"].ToString());
}
return content;
}



protected void btnchangezc_Click(object sender, EventArgs e)
{
string nids = this.hfnids.Value;
if (nids != "")
{
string[] nidsz = nids.Substring(0, nids.Length - 1).Split(',');
for (int i = 0; i < nidsz.Length; i++)
{
huibaoNews hbnmodel = HBNBLL.GetModel(int.Parse(nidsz[i]));
hbnmodel.state = 1;
HBNBLL.Update(hbnmodel);
}
db.Show(Page, "操作成功");
}
// searchNews();
}

}
}
...全文
1223 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
private string GetGeneralContent(string strUrl)

    {

        string strMsg = string.Empty;

        try

        {

            WebRequest request = WebRequest.Create(strUrl);

            WebResponse response = request.GetResponse();

            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));



            strMsg = reader.ReadToEnd();



            reader.Close();

            reader.Dispose();

            response.Close();

        }

        catch

        { }

        return strMsg;

    }
这样抓内容,然后再筛选有用的
qq_37376544 2017-03-02
  • 打赏
  • 举报
回复
那个的意思是指!获取ajax所显示的内容!我贴上去的代码只能获取静态网的!获取不到ajax页面显示的东西!
Poopaye 2017-03-01
  • 打赏
  • 举报
回复
什么静态动态?大家都是http,有什么区别? 既然有代码,url改一下就能用了。
qq_37376544 2017-03-01
  • 打赏
  • 举报
回复
大神!可以麻烦你给我个思路吗??如何用代码获取ajax页面的内容!
qq_37376544 2017-03-01
  • 打赏
  • 举报
回复
好像是不是要安装一个phantomjs 然后用c#代码调用可是phantomjs安装后运行不了js文件!
peng2739956 2017-03-01
  • 打赏
  • 举报
回复
引用 2 楼 qq_37376544 的回复:
以前只需要静态就可以!现在先要抓取ajax数据!所以很是郁闷!!不知有什么方法或者思路吗?
用winform好像是能抓取动态数据,而且你仅仅只是要数据,那么可以在服务器开一个winform的应用进行抓取,然后每30秒或者1分钟进行一次数据同步就好了,如果数据仅仅是作为网站的参考,你完全可以将数据放入到Redis里面。网站直接从缓存里面取就行了
qq_37376544 2017-03-01
  • 打赏
  • 举报
回复
以前只需要静态就可以!现在先要抓取ajax数据!所以很是郁闷!!不知有什么方法或者思路吗?
peng2739956 2017-03-01
  • 打赏
  • 举报
回复
HtmlAgilityPack 能帮你.但是也是仅仅能抓静态的。
2010/12/30 v1.2版 改掉程序中所有的select标签 项目结构说明: \ ……\App_Data 项目数据库文件 (ACCESS2003) ……\bin\ …………\AjaxPro.2.dll .NET调用AJAX类库 …………\App_Code.dll 功能类文件 …………\App_Web_ka4newz2.dll *.aspx.cs文件打包 ……\JS\ …………\jquery-1.4.4.min.js JQuery库 …………\Script 系统自定义JS文件 ……\Default.aspx 系统功能页面 ……\Help.txt 帮助文档 ……\web.config 配置文件 ……\PrecompiledApp.config 发布配置文件 系统使用说明: 一、系统启动后在“抓取网页路径” 输入要抓取网页的URL 以文本内默认格式输入 选择“网页编码格式” (如果不知道网页格式可以更换不同选择项),然后击“测试打开网页”。系统会 在页面右侧空白处显示页面源码,以及以小窗口形式显示要抓取网页可视化界面。 二、在“列表定位标签”输入要抓取列表信息容器型标签。例如:DIV、UL、TABLE “筛选同类标签”作用是用来过滤页面上同类定位标签,然后击“测试列表定位” 三、“抓取信息标签”是指列表后页面中要制定抓取的信息容器型标签。(如果抓取整页信息请为空),然后 击“开始抓取列表内容”。 四、当抓取记录操作中出现抓取日志时。网页HTML字符串已经保存完毕。可是图片可能还在陆续保存。由于是WEB 形式所以无法得知何时抓取完毕,用户需长时间进程守候。 五、“获取抓取页面打包”是先前抓取网页以及图片打包 六、项目DOWNLOADS中分HTML、IMAGES是保存抓取网页的信息 系统问题: 系统对网速要求很高,因为下载图片是多线程。 B/S模式程序响应可能超时而影响系统正常运行。
比较可以的程序 想请教大家一起研究 ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ News Speed Love / 速递交友   ┃ ┃ 程序版本:Nslove Version 5.0.0 ┃ ┃ 版权所有: 速递交友(nslove.com) ┃ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ News Speed Love ┃ ┃ Copyright 2003-2008 nslove.com - All Rights Reserved. ┃ ┃ nslove is a trademark of nslove.com ┃ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃【版权声明】 ┃ ┃ 本软体为共享软体(shareware)提供个人网站免费使用。 ┃ ┃ 非经速递交友书面授权许可,不得将之用于盈利或非盈利性的商业用途。 ┃ ┃ 为适应实际的计算机应用环境或者改进其功能、性能,可以进行必要的修改 ┃ ┃ 但不得去除速递交友的版权标示,不得将修改后版本进行任何的商业行为。 ┃ ┃ 本软体为免费软件,用户自由选择是否使用,在使用中出现任何问题而造成 ┃ ┃ 的损失速递交友不负任何责任。 ┃ ┃ 使用该软件必须保留速递交友的版权声明,将该软件从原有自然语言文字转 ┃ ┃ 换成另一自然语言文字的,仍应注明出处。 ┃ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ 文件名称:Nslove5.0功能说明 ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛   安装要求:   安装环境:Windows2000以上,IIS5.0以上,商业版需要安装MSSql 2000以上,安装前请确保您满足安装环境。   组件要求:FSO读写权限,Adobe.Stream组件,邮件组件(如:Jmail),上传组件,水印组件   运行环境:ASP+Js+Ajax+XML   软件大小:22.6M   软件类别:国产软件|交友会员   软件语言:简体中文   软件授权:免费版   演示地址:http://www.nslove.com   相关链接:http://www.nslove.com   软件介绍:   1、Nslove5.0采用缓存+标签+模板重新设计核心,程序代码与模板分离,后台提供模板修改美化!语言环境ASP+SQL存储过程,支持达百万会员,结合Ajax无刷新设计,提高用户的使用体验。布局方式Div+CSS设计提高访问速度!各栏目可生成静态html。   2、后台提供会员资料采集,可采集世纪佳缘、嫁我网会员等,如需要采集另外网站与本人联系。采集系统用类设计,分析用正则分析,速度非常快,大约1.5秒采集一个会员资料包括头像下载到本地,一夜之间可以达到百万用户数据。   3、支持二级域名设置:可对各个栏目进行二级设计,当然服务器需要二级域名支持,自由命名自由指定。   4、支持国家、省州、市区分站生成,并且各个分站会员自动匹配   5、支持学校分站生成,可建立各学校的交友网分站   6、会员注册资料包括基本信息、详细信息、联系信息等,注册步骤基本按这个顺序注册,只要注册完第一步,可登录之后再注册。注册完发送邮件进行激活,并且有16位激活代码!用户必须激活。会员注册以邮件地址为注册名!会员每天登录都会自动发送一封邮件,可作宣传或者服务使用,邮件内容可以后台设置!   7、用户注册可推荐、机构加盟注册,推荐与机构都可进行提成,提成可在后台设置提成比率!   8、注册完成生成个人主页,会员拥有自己的个人资料主页!可自由选择模板,更具个性化。   9、会员认证:身份证、头像、视频认证及上传房产证、婚育证、职业证等,多达22项认证,只要认证5项,即可得到5星认证会员。   10、头像提供本地上传、视频拍照,头像可在线进一步处理,可翻转、放大、缩小等操作!   11、头像可以设置显示模式:所有人可见、会员可见、VIp会员可见、推荐会员可见、金币支付可见、密码可见等几项!   12、会员可以发布征婚信息,更加快速的征友征婚!可自由发送或者关闭!   13、有接收到邮件信息,系统会在右下角上升一个小窗口,提示邮件信息及类别!   14、会员可添加专递对象,可对会员发送置顶邮件,让对方不得不看邮件内容!达到醒目作用,自由申请   15、会员可申请服务:如升级VIP、明星榜(总站、地区分站)等服务,只要金币足够可以自由申请   16、支持在线聊天、会员可以邀请对方进行在线聊天,可以立即更详细了解对方。   17、会员可以参与网站赚钱计划,普通会员提供推广代码,只要对方浏览该网址,并没有注册但是以后只要访问并注册,也属于该会员的推广会员,推广会员可参与拥金提成,在交友的同时也可以参与赚钱是个不错的地方。对于婚介机构有自己的推广代码,提成比率是不同!提成比率可以后台设置。   18、栏目说明:博客日记、网友相册、线下活动、1+1约会、群组圈子、拼客、试客、恋爱诊所、话题(辩论型)等。   19、撰写日记可创建属于自己的日记,可生成静态的html文件。发布日记有金币操作。可设置一天操作几次,防止刷金币问题,也可以作为管理员推广某个栏目提高人气方法,如今天对某个栏目设置金币赠送,让会员都来参与。其它栏目也有这个功能。   20、用户可创建相册,生成静态相册本。文件数由后台设置!相册图片来源可以本地批量上传、视频拍照、远程抓取保存到本地。   21、支持用户创建群组功能!创建个数,由后台管理设置!群组方便有相同兴趣组成一个群落!群组可以创建论坛版块、相册等。可设置群组管理员、可升级群组等级(普通群、高级群、超级群、无限群),等级后台可以设置!群组可选择模板生成!   22、发布聚会活动,婚介机构会员可以发布、可申请服务如场地提供、志愿者服务、主持人、电视媒体等!   23、1+1约会,会员可以找对方发起私人约会,可对大众发起公开约会。   24、可发布和参与拼客、试客信息,借与交友网站会员宏大,可以提高会员活跃,在交友的同时有另外一份礼物!   25、恋爱诊所提供会员提问问题解决问题的地方!   26、升级VIP、VIP用户有更高的权限,有时间期限!明星榜提供会员自我推荐,成功率可成倍增长。推荐有时间限制及费用要求   27、成功故事,会员成功交友可以发布,让大家来分享他的快乐,可创建一个两个人的空间,可以发布成功经验、可以上传相册等,可以选择自己的模板生成静态   28、会员管理操作更人性化、无需频繁的跳转窗口,提交保存只会跳出一个小窗口即可保存!      更多功能将会在后续进行补充或者到官方论坛查看:http://www.nslove.com/bbs/    ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ 福建速递交友网络科技有限公司 ┃ ┃ 网址:http://www.nslove.net、http://www.nslove.net ┃ ┃ 地址:福建省厦门市集美区凤林下头37号 ┃ ┃ 电话:0592-6250838 ┃ ┃ 手机:013459256001 ┃ ┃ 主机事业部:info@nslove.com ┃ ┃ 网站事业部:love@nslove.com ┃ ┃ 在线联系:QQ 10689579 MSN:Ns_L@hotmail.com ┃ ┃ 详细联系方法:http://www.nslove.cn/email.asp ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧