请问各位大虾,小弟想实现一个自动采集当当网图书排行书名到自己网站上,有两点疑问:
火车头可以采集当当这类动态网站么?
必须更新到自己真实有域名的网站么?本地网站不行吗?可以的话要怎么改?
在asp.net下怎么实现
火车头可以采集当当这类动态网站么?
必须更新到自己真实有域名的网站么?本地网站不行吗?可以的话要怎么改?
在asp.net下怎么实现
解决方案 »
- 上传文件的问题
- GridView的删除
- 未能加载文件或程序集“Brettle.Web.NeatUpload”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_IN
- 再问!请教高手。。。。。。关于FileUpload控件!
- 唯一确定访客的问题
- 急!急!急!关于ado.net的dataset超级菜的问题
- 如何把在线编辑器提交到数据库中的数据,在读取的时候把html<>标签都去掉,只要纯文本?
- 强类型数据集如何实现缓存?
- 编译器错误信息: CS1595: 已在多处定义“Microsoft.Web.UI.WebControls.TreeView”;使用
- 我的dataGrid为什么没有page事件,这样,我分页怎么写呀?
- 请教关于动态创建webpart的问题
- 请大家看看这个视图改为存储过程该如何写啊?
晕 弄错了哦 /// <summary>
/// 分析并整理信息
/// </summary>
/// <returns></returns>
public string[] GetInfo()
{
WebClient wc = new WebClient();//创建WebClient对象
string msg;
try
{
byte[] byDats = wc.DownloadData(this.TextBox1.Text);//下载指定的Url资源
msg = UnicodeEncoding.Default.GetString(byDats);//转换编码
}
catch (Exception ex)
{
msg = ex.Message;
}
#region 正则切割
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"·\s*<a[^>]*>(?<title>[^<]*)</a>\s*<font[^>]*>(?<date>[^<]*)</font>");
string result = string.Empty;
foreach (Match m in reg.Matches(msg))
{
result += m.Groups["title"].Value + ",";//新闻标题
result += m.Groups["date"].Value + "|" + "\r\n";//时间
}
#endregion 正则切割结束 string[] strResult = result.Split('|');
ArrayList al = new ArrayList();
for (int i = 0; i < strResult.Length; i++)
{
al.Add(strResult[i]); }
string[] ds;
ArrayList al2 = new ArrayList();
for (int i = 0; i < al.Count; i++)
{
ds = al[i].ToString().Split(',');
foreach (string s in ds)
{
al2.Add(s);
}
}
return (string[])al2.ToArray(typeof(string));
} /// <summary>
/// 获取文章标题
/// </summary>
/// <returns></returns>
public string[] GetTitle()
{
ArrayList al = new ArrayList();
string[] Titles = GetInfo();
for (int i = 0; i < Titles.Length; i++)
{
if ((i % 2) == 0)
{
al.Add(Titles[i]);
}
}
return ((string[])al.ToArray(typeof(string)));
}
/// <summary>
/// 获取文章发布日期
/// </summary>
/// <returns></returns>
public string[] GetDate()
{
ArrayList al = new ArrayList();
string[] Dates = GetInfo();
for (int i = 0; i < Dates.Length; i++)
{
if ((i % 2) != 0)
{
al.Add(Dates[i]);
}
}
return ((string[])al.ToArray(typeof(string)));
}
/// <summary>
/// 显示数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button2_Click(object sender, EventArgs e)
{
string[] ss = GetTitle();
Response.Write("标题"+"<br>");
for (int i = 0; i < ss.Length; i++)
{
Response.Write(ss[i]);
Response.Write("<br>");
}
string[] ss2 = GetDate();
Response.Write("日期"+"<br>");
for (int j = 0; j < ss2.Length; j++)
{
Response.Write(ss2[j]);
Response.Write("<br>");
}
}
protected void Button3_Click(object sender, EventArgs e)
{
string [] titles=GetTitle();
string [] dates=GetDate();
for (int i = 0; i < ((titles.Length + dates.Length) / 2); i++)
{
Insert(titles[i], dates[i]);
}
} public void Insert(string title,string date)
{
string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ToString();
SqlConnection conn = new SqlConnection(connStr);
string sqlStr = "insert into news(title,sendtime) values(@title,@date)";
SqlCommand cmd = new SqlCommand(sqlStr,conn);
cmd.Parameters.Add("@title",SqlDbType.VarChar,200);
cmd.Parameters.Add("@date",SqlDbType.VarChar,50);
cmd.Parameters["@title"].Value = title;
cmd.Parameters["@date"].Value = date;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}