public LabelingForm() { InitializeComponent(); labelingSerializer = new Serializer(false); statusSerializer = new Serializer(false); doneLabeling = new List<Labeling>(); // Set menu item MenuItem miLoad = new MenuItem("Load"); miLoad.Click += new EventHandler(menuLoad_click); MenuItem miSave = new MenuItem("Save"); miSave.Click += new EventHandler(menuSave_click); MenuItem miClear = new MenuItem("Clear"); miClear.Click += new EventHandler(menuClear_click); MenuItem miFiltering = new MenuItem("Filtering"); miFiltering.Click += new EventHandler(menuFiltering_click); this.Menu = new MainMenu(); this.Menu.MenuItems.Add(miLoad); this.Menu.MenuItems.Add(miSave); this.Menu.MenuItems.Add(miClear); this.Menu.MenuItems.Add(miFiltering); }
// 用依然可以使用的Home_Timeline获取最新的一大串微博 public static void fetchUserStatusInFile(string listPath, string toPath, int topMax, bool followFirst = false) { // 关注所有的list Crawler crawler = new Crawler(); if (followFirst) crawler.followUserByUserList(listPath); // 找到用户最新的微博ID long max = long.MinValue; Serializer rr = new Serializer(false); if (File.Exists(toPath)) { rr.ReadStream(toPath); Status ts = (Status)rr.ReadNextObject(); while (ts != null) { if (max < long.Parse(ts.ID)) max = long.Parse(ts.ID); ts = (Status)rr.ReadNextObject(); } rr.CloseStream(); } rr.WriteStream(toPath); int count = 0, page = 1, numOfRecord = 0; while(count < topMax){ int need = Math.Min(topMax - count, 100); Console.WriteLine(need); List<Status> ls = crawler.getUserStatusByHome(need, page); Console.WriteLine(need + " " + page); foreach (Status s in ls) { // 如果是最新的就写入到记录文件中 if (max < long.Parse(s.ID)) { rr.WriteObject(s); Console.WriteLine(s.ID); numOfRecord++; } } count += need; page++; } rr.CloseStream(); Console.WriteLine(numOfRecord + " recorded"); }
public static void fetchUserStatus(string userName, int topMax) { // 找到用户名对应的文件 string filePath = pathUserList; // 找到用户最新的微博ID long max = long.MinValue; Serializer rr = new Serializer(false); if(File.Exists(filePath)) { rr.ReadStream(filePath); Status ts = (Status)rr.ReadNextObject(); while (ts != null) { if (max < long.Parse(ts.ID)) max = long.Parse(ts.ID); ts = (Status)rr.ReadNextObject(); } rr.CloseStream(); } // 抓用户最新的微博 Crawler cr = new Crawler(); List<Status> ls = cr.getUserStatusByUserName(userName, topMax, 1); rr.WriteStream(filePath); foreach (Status s in ls) { // 如果是最新的就写入到记录文件中 if (max < long.Parse(s.ID)) { rr.WriteObject(s); Console.WriteLine(s.ID); } } rr.CloseStream(); }