using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using System.Collections;
using System.IO;
using System.Net;
using System.Text;
namespace NewsCollection
{
public partial class SiteEdit : System.Web.UI.Page
{
string urlData = "";
protected void Page_Load(object sender, EventArgs e)
{
this.BtCollection.Attributes.Add("onclick", "Status.showInfo('加载中');");
if (!Page.IsPostBack)
{
AjaxAction();
BindData();
}
}
public string GetRequest(string key)
{
key = Convert.ToString(Request[key]??"");
key = key==null?(""):(key);
return key;
}
public void AjaxAction()
{
string isAjax = GetRequest("isAjax").ToLower();
if (isAjax == "true")
{
string state = "";
string action = this.GetRequest("action").ToLower();
string values = this.GetRequest("values");
if (action == "newsbody")
{
string modelstart = this.GetRequest("modelstart");
string modelend = this.GetRequest("modelend");
string modelbody = this.GetRequest("modelbody");
string siteUrl = this.GetRequest("siteUrl");
ArrayList al = this.GetModelData(modelstart, modelend, modelbody, siteUrl);
StringBuilder sb = new StringBuilder();
foreach (string s in al)
{
sb.Append(s);
}
state = sb.ToString();
}
else if (action == "newsdetail")
{
string modelstart = this.GetRequest("modelstart");
string modelend = this.GetRequest("modelend");
string modelbody = this.GetRequest("modelbody");
string siteUrl = this.GetRequest("siteUrl");
string newsTitleStart = this.GetRequest("newsTitleStart");
string newsTitleEnd = this.GetRequest("newsTitleEnd");
string newsContentStart = this.GetRequest("newsContentStart");
string newsContentEnd = this.GetRequest("newsContentEnd");
state = GetNews(GetModelData(modelstart, modelend, modelbody, siteUrl), newsTitleStart, newsTitleEnd, newsContentStart, newsContentEnd);
}
else
{
state = "test Ajax";
}
Response.Clear();
Response.Write(state);
Response.End();
}
}
public void BindData()
{
string Gid = Convert.ToString(Request["Gid"] ?? "");
if (Gid.Length > 0)
{
Beans.Sites sites = new Beans.Sites();
sites.Gid = Gid;
sites = sites.SelectById();
TbSiteName.Text = sites.SiteName;
TbSiteUrl.Text =sites.SiteUrl;
TbSiteModelStart.Text = sites.SiteModelStart;
TbSiteModelEnd.Text =sites.SiteModelEnd;
TbSiteModelBody.Text = sites.SiteModelBody;
TbNewsTitleStart.Text =sites.NewsTitleStart;
TbNewsTitleEnd.Text =sites.NewsTitleEnd;
TbNewsContentStart.Text =sites.NewsContentStart;
TbNewsContentEnd.Text =sites.NewsContentEnd;
}
}
protected void BtEdit_Click(object sender, EventArgs e)
{
string message = "系统错误请重试";
string script = "history.go(-1)";
string Gid = Convert.ToString(Request["Gid"]??"");
Beans.Sites sites = new Beans.Sites();
sites.SiteName = TbSiteName.Text.Trim();
sites.SiteUrl = TbSiteUrl.Text.Trim();
sites.SiteModelStart = TbSiteModelStart.Text.Trim();
sites.SiteModelEnd = TbSiteModelEnd.Text.Trim();
sites.SiteModelBody = TbSiteModelBody.Text.Trim();
sites.NewsTitleStart = TbNewsTitleStart.Text.Trim();
sites.NewsTitleEnd = TbNewsTitleEnd.Text.Trim();
sites.NewsContentStart = TbNewsContentStart.Text.Trim();
sites.NewsContentEnd = TbNewsContentEnd.Text.Trim();
if (Gid.Length > 0)
{
sites.Gid=Gid;
if (sites.Update())
{
message = "修改成功!";
}
}
else
{
if (sites.Add())
{
message = "添加成功!";
}
}
Response.Write("<script type='text/javascript'>alert('"+message+"');"+script+"</script>");
}
protected void BtCollection_Click(object sender, EventArgs e)
{
GetNews(GetModelData(TbSiteModelStart.Text.Replace("(", "\\(").Replace(")", "\\)").Replace(".", "\\."), TbSiteModelEnd.Text.Replace("(", "\\(").Replace(")", "\\)").Replace(".", "\\."), TbSiteModelBody.Text, TbSiteUrl.Text), TbNewsTitleStart.Text.Trim(), TbNewsTitleEnd.Text.Trim(), TbNewsContentStart.Text.Trim(), TbNewsContentEnd.Text.Trim());
// GetNews(GetModelData(TbSiteModelStart.Text.Replace("(", "\\(").Replace(")", "\\)").Replace(".", "\\."), TbSiteModelEnd.Text.Replace("(", "\\(").Replace(")", "\\)").Replace(".", "\\."), TbSiteModelBody.Text, TbSiteUrl.Text));
}
public ArrayList GetModelData(string modelstart,string modelend,string modelbody,string SiteUrl)
{
ArrayList al = new ArrayList();
string content = GetHttpData(SiteUrl,"gb2312");
Regex reg = new Regex(modelstart+"(?<newsBody>[\\s\\S]*)"+modelend, RegexOptions.IgnoreCase | RegexOptions.Multiline);
Match mat = reg.Match(content);
//TbContent.Text = mat.Groups["newsBody"].Value.ToString();
Regex regurl = new Regex(modelbody.Replace("_url_", "(?<url>[^\"'\\s]+)"), RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match maturl = regurl.Match(mat.Groups["newsBody"].Value.ToString());
while (maturl.Success)
{
//z-zA-A0-9/\\.:
string temp = maturl.Groups["url"].Value;
al.Add(temp);
Response.Write(temp.StartsWith("http://") ? (temp) : (temp.Insert(0, "http://" + SiteUrl.Replace("http://","").Substring(0, SiteUrl.LastIndexOf("/")))) + "<br>");
maturl = maturl.NextMatch();
}
return al;
}
public string GetNews(ArrayList al,string titleStart,string titleEnd,string contentStart,string contetnEnd)
{
StringBuilder sb = new StringBuilder();
if (al != null)
{
foreach (string s in al)
{
Regex reg = new Regex(titleStart.Replace("(", "\\(").Replace(")", "\\)") + "(?<title>[^<]*)" + titleEnd.Replace("(", "\\(").Replace(")", "\\)") + "[\\s\\S]+" + contentStart.Replace("(", "\\(").Replace(")", "\\)") + "(?<content>[\\s\\S]+)" + contetnEnd.Replace("(", "\\(").Replace(")", "\\)"), RegexOptions.IgnoreCase | RegexOptions.Multiline);
Match mat = reg.Match(GetHttpData(s, "gb2312"));
//Response.Write(string.Format("news:{0}<br>content:{1}<br>",mat.Groups["title"].Value,mat.Groups["content"].Value));
Beans.News news = new Beans.News();
news.Title = mat.Groups["title"].Value;
news.Typeid = Convert.ToString(Request["Gid"]);//mat.Groups["title"].Value;
news.From = this.TbSiteName.Text;//mat.Groups["content"].Value;
news.Content = mat.Groups["content"].Value;
news.Add();
sb.AppendFormat("title:{0}", mat.Groups["title"].Value);
}
}
return sb.ToString();
}
public string GetHttpData(string sUrl, string encoding)
{
string sRslt = null;
WebResponse oWebRps = null;
WebRequest oWebRqst = WebRequest.Create(sUrl);
oWebRqst.Timeout = 50000;
try
{
oWebRps = oWebRqst.GetResponse();
}
finally
{
if (oWebRps != null)
{
StreamReader oStreamRd = new StreamReader(oWebRps.GetResponseStream(), System.Text.Encoding.GetEncoding(encoding));
sRslt = oStreamRd.ReadToEnd();
oStreamRd.Close();
oWebRps.Close();
}
}
return sRslt;
}
}
}
分享到:
相关推荐
新闻采集器源码 新闻采集器源码 新闻采集器源码 绝对实用的采集系统修改采集规则即可得到你想要的新闻
美容新闻淘客免维护全自动采集1.采集瑞丽女性美容频道文章,免维护全自动采集2.可自定义网站标题,关键字,描述等3.可选择是否应用新浪SAE平台 支持 新浪SAE环境 与普通环境自由切换4.自定义推广产品5.自定义广告链接6....
ASP.NET开发 ,网页新闻采集,电源数据采集 数据分析 ,需要配置网址 正常表达式,等采集规则,仅供参考
仿腾讯网地方新闻门户网源码,整站程序带数据网站源码(带采集)可生成静态,是做资讯门户站的绝对首选哦。 本套系统后台功能强大,自带了多条采集规则,可采集各个栏目不同的新闻,后台可以直接一键生成静态页面,...
开发环境:帝国cms 7.2 GBK ...使用帝国7.2 GBK版二次开发,程序具有极好的稳定,安全,高性能等优点! 二次开发功能: PC版: 1、增加文章Ajax收藏,...温馨提醒:此火车头采集规则已经失效 需要火车头采集规则的请自己
WordPress内核站群全自动新闻采集发布源码,单站专用,【未测试源码主题,仅供参考学习】 内置配置好的多个采集规则,简单修改数据库即可上线,可后台自行替换模板(可替换MIP模板) 3.1、百度搜索“wp模板...
WordPress内核站群全自动新闻采集发布源码,单站专用, 内置配置好的多个采集规则,简单修改数据库即可上线,可后台自行替换模板(可替换MIP模板) 3.1、百度搜索“wp模板MIP”,更多wordpass使用教程百度即可,...
<br>一个集房产信息、新闻信息采集和天气预报读取为一体的Demo网站,该源码充分利用了Ajax技术来体现页面无刷新 <br>可以通过在后台设置网站配置信息、房产信息和新闻采集规则等 <br>该源码利用了log4...
小说管理系统源码带采集规则附本地搭建教程 注意:不带技术支持,有帮助文件,虚拟商品,发货不退,看好再拍。 开发语言 : PHP 数据库 : MySQL 开发工具 : phpstrom 源码类型 : WebForm 技术架构 ...
熊猫采集软件是新一代采集软件,全程可视化视窗鼠标操作,用户无需关心网页源码,无需编写采集规则,无需使用正则表达式技术,全程智能化辅助,是采集软件行业的换代产品。同时也是通用性采集软件,可以应用在各个...
一个集房产信息、新闻信息采集和天气预报读取为一体...可以通过在后台设置网站配置信息、房产信息和新闻采集规则等 该源码利用了log4net进行日志跟踪 InsApp内为函数项目文件 管理地址:/SearchManage,默认直接就登录
这套源码里面最有价值的应该是这个采集插件,傻瓜式操作,不会写采集规则,这些都是小意思,插件可以自动分析采集规则而自动生成采集规则,牛皮不牛皮,这套是刚更新了采集规则全部正常, 有一点我要说下,左侧的...
讯客门户网源码(分类信息+商家+新闻+手机触屏版) 门户源码,分类源码,供求源码,行业信息源码 专业的信息发布类网站综合管理系统,适合各类地方信息和行业分类站点建站。随着这几年我们国家网民爆炸式的增长,网络...
,原代码开源,原生android+ios,所涉及彩种几十种,可自由匹配接口,源码开源:后端JAVA,前端源码,Android源码,IOS源码,数据库,Java爬虫采集,搭建教程等。 竞彩足球,竞彩篮球,北京单场,排列3,排列5… 爬虫(Web ...
·新闻采集功能,采集时可进行其它管理操作,采集规则导入导出 多任务循环采集采集,可实现网站24小时自动内容更新 采集支持utf-8和big5编码并能转换繁体为简体 ·新闻内其它网站图片与Flash自动下载 ·jpg、gif、...
4.集成了新闻采集系统 5.会员管理系统,并与流行论坛高度整合 6.自由化的权限分配管理 7.全个性化模板生成,模板由用户自由定义 8.投稿,投票,广告管理 9.面向高级技术人员的自由化SQL扩展标签 10.自动生成图片水印...
粉色新闻资讯整站模板,程序采用帝国 cms7.5 内核仿制,内容采用火车头采集更新带采集规则发布即生成维护也方便。采用后台新闻模型制作全站模板自动调用链接与名称,程序开源没有无任何限制不绑定域名,方面比较省心...
安装众大云采集phpcms插件之后,在发布内容的上方会出现一个采集器控制面板,...15、输入关键词可以采集任何内容,不用写采集规则,是一款万能采集工具。 众大云采集phpcms截图 相关阅读 同类推荐:站长常用源码