16,371
社区成员




#region former regular expression
/*Regex reg_con = new Regex(@"<div id=""article_content"" class=""article_content"">([\s\S]+)</div>\s*<div class=""share_buttons"" id=""sharePanel"">", RegexOptions.IgnoreCase | RegexOptions.Compiled);
* */
#endregion
#region using regular expression
Regex reg_con = new Regex(@"<div id=""article_content"" class=""article_content"">[\r\n ]*([\s\S]+)</div>[\r\n ]*[\s\S]+[\r\n ]*<div class=""bdsharebuttonbox""", RegexOptions.IgnoreCase | RegexOptions.Compiled );
#endregion
//添加成员变量 正则定义
Regex reg_title_top = new Regex(@"<span class=""link_title""><a href=""(.+?)"">[\r\n\t ]*<font color=""red"">\[置顶\]</font>([^<]+?)</a></span>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
修改方法实现如下:
public IList<FeedEntity> GetList()
{
var list = new List<FeedEntity>();
int p = 0;
for (int i = 1; i < 1000; i++)
{
if (p > 0 && i > p) break;
web.URL = string.Format(url, i);
string html = web.Get();
if (p == 0)
{
var mp = Regex.Match(html, @"共(\d+)页");
if (mp.Success) p = App.ToInt(mp.Groups[1].Value);
else p = 1;
}
//not top
var mats = reg_title.Matches(html);
if (mats.Count == 0) break;
foreach (Match mat in mats)
{
var fd = new FeedEntity();
fd.Url = (_csdnBasicBlogUrl.EndsWith("/") ? (_csdnBasicBlogUrl.Substring(0, _csdnBasicBlogUrl.Length - 1)) : _csdnBasicBlogUrl) + mat.Groups[1].Value;
fd.Title = mat.Groups[2].Value.Trim();
list.Add(fd);
}
mats = reg_title_top.Matches(html);
if (mats.Count == 0) break;
foreach (Match mat in mats)
{
var fd = new FeedEntity();
fd.Url = (_csdnBasicBlogUrl.EndsWith("/") ? (_csdnBasicBlogUrl.Substring(0, _csdnBasicBlogUrl.Length - 1)) : _csdnBasicBlogUrl) + mat.Groups[1].Value;
fd.Title = mat.Groups[2].Value.Trim();
list.Add(fd);
}
}
//反转LIST
list.Reverse();
return list;
}
//方法中有一个取字体的方法
private BaseFont CreateChineseFont()
{
BaseFont.AddToResourceSearch("iTextAsian.dll");
BaseFont.AddToResourceSearch("iTextAsianCmaps.dll"); //"STSong-Light", "UniGB-UCS2-H",
//BaseFont baseFT = BaseFont.CreateFont("STSong-Light", BaseFont.EMBEDDED);
BaseFont baseFT = BaseFont.CreateFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
//BaseFont.CreateFont()
return baseFT;
}
//这个方法直接取本机TTF字体库了,不知道你机器中有没有这个
[/quote]
//方法中有一个取字体的方法
private BaseFont CreateChineseFont()
{
BaseFont.AddToResourceSearch("iTextAsian.dll");
BaseFont.AddToResourceSearch("iTextAsianCmaps.dll"); //"STSong-Light", "UniGB-UCS2-H",
//BaseFont baseFT = BaseFont.CreateFont("STSong-Light", BaseFont.EMBEDDED);
BaseFont baseFT = BaseFont.CreateFont("C:/WINDOWS/Fonts/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
//BaseFont.CreateFont()
return baseFT;
}
//这个方法直接取本机TTF字体库了,不知道你机器中有没有这个