运行效果

完整代码
using System;
using System.Collections.Generic;
using System.Collections;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Text;
using Ploverinfo.CommonLib.Util;
using Ploverinfo.CommonLib.App;
namespace Ploverinfo.Download.Album
{
public class Sample02Site : csharpSite
{
public Sample02Site()
{
}
public Sample02Site createInstance()
{
return new Sample02Site();
}
//重载函数,初始化
//is_create是否由创建时调用,为true时用于首次初始化
override public bool init(bool is_create)
{
if (is_create)
{
//添加网址过滤选项,意思为:浏览器所有请求网址中包含/hot-event/hot-board/的,且返回数据包含"data" 的
add("/hot-event/hot-board/", "\"data\"");
//强制数据导出,用于将数据包导出成Excel文件
CommonLib.App.Global.config.setBoolValue("ExportDataPackage", true);
}
//表格列头设置,按需修改
int y = 0;
Parent.DataPackages.ColumnCount = 3;
Parent.DataPackages.add_column(0, y, "序号", 10);
Parent.DataPackages.add_column(1, y, "名称", 80);
Parent.DataPackages.add_column(2, y, "链接", 80);
Parent.DataPackages.CurrentPosition.y = 1;
return true;
}
override public bool detach_tasks()
{
Core.Set set = new Core.Set();
set.Url = StartUrl;
set.Parent = this;
//调用内置浏览器
set.request_data_by_browser(set.Url);
//增加完成计数
set.FinishedCounterIncrease();
return true;
}
//浏览器回调函数:set为detach_tasks的发起者,url为请求网址,content为请求内容
override public bool browser_callback(Core.Set set, string url, string content)
{
if (string.IsNullOrEmpty(content)) return false;
//根据返回内容自行编写代码
int index =1;
List<string> blocks = CommonLib.Util.RegexHelper.MatchStringSingleLine(content, "\"ClusterId\".*?image_type");
foreach (string block in blocks)
{
//CommonLib.App.Global.logs.AddDebug(block);
string article_title = CommonLib.Util.RegexHelper.MatchOnceSingleLine(block, "(?<=\"Title\":\").*?(?=\")");
string article_url = CommonLib.Util.RegexHelper.MatchOnceSingleLine(block, "(?<=\"Url\":\").*?(?=\")");
//向数据包中添加一行数据
Parent.AddRow(index.ToString(), article_title, article_url);
index++;
//在界面中输出执行结果
CommonLib.App.Global.logs.AddInfo(string.Format("已采集到{0}条数据", index));
}
//返回true自动关闭浏览器页面;false则不自动关闭,由用户手动关闭
return true;
}
}
}