部落格轉發小工具1

農碼一生發表於2014-12-21

有些朋友在轉發別人部落格的時候會問,部落格怎麼轉發的啊?讓我一段一段的複製嗎?那圖片怎麼辦?隱藏程式碼要一個一個的開啟了複製?

對,很麻煩。費時費力。有的同學會說收藏不就可以了嗎?收藏只是收藏了別人的地址,並沒有收藏人家的全部內容。如果人家刪除原文章,那就等於白收藏了。

我不知道 部落格園有沒有一鍵轉發的功能,反正我是沒找到的。於是,閒來無事,做了個部落格轉發小工具。

其實很簡單,分三步。 

一:取得頁面內容

取頁面內容需要用到HtmlAgilityPack.dll 詳細用法可以百度之。

 1          /// <summary>
 2         /// 抓取方法
 3         /// </summary>
 4         /// <param name="url">url地址</param>
 5         /// <returns></returns>
 6         public Result getList(string url)
 7         {
 8             if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(url.Trim()))
 9                 return null;//如果url為空 則立刻返回
10             Result result = new Result();
11             HtmlWeb htmlWeb = new HtmlWeb();
12             try
13             {
14                 HtmlAgilityPack.HtmlDocument htmlDoc = htmlWeb.Load(url);
15                 result.url = url;
16                 result.content = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='cnblogs_post_body']").InnerHtml;//這裡是去div id為cnblogs_post_body的全部內容  也就是我們釋出的部落格全部內容
17                 result.title = htmlDoc.DocumentNode.SelectSingleNode("//a[@id='cb_post_title_url']").InnerText; //取標題
18             }
19             catch (Exception) { return null; }
20             return result;
21         }

二:複製頁面內容

Clipboard.SetText(txt_content.Text);//把內容複製到貼上板

三:貼上內容釋出

這裡就沒有我的事了。你自己去後臺釋出就ok了。

不過釋出的時候要注意了。貼上的時候一定要切換到html模式。

貼圖了

 

這裡貼出全部程式碼,因為程式碼量非常少,就放一個檔案了。

 1 using HtmlAgilityPack;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.ComponentModel;
 5 using System.Data;
 6 using System.Drawing;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 
10 namespace 部落格轉發
11 {
12     public partial class Form1 : Form
13     {
14         public Form1()
15         {
16             InitializeComponent();
17         }
18 
19         private void button1_Click(object sender, EventArgs e)
20         {
21             //string url = @"http://www.cnblogs.com/zhaopei/p/4174811.html";           
22             Result re = getList(txt_url.Text);
23             if (re == null)
24             {
25                 MessageBox.Show("請輸入正確部落格園的部落格地址~"); return;
26             }
27             string str = @"<a href='" + re.url + "'>【轉】" + re.title + "</a><br/>";
28             txt_content.Text = str + re.content;
29             txt_title.Text = "【轉】" + re.title;
30             Clipboard.SetText(txt_content.Text);//把內容複製到貼上板
31             MessageBox.Show("已經成功複製到貼上板~");
32         }
33 
34         /// <summary>
35         /// 抓取方法
36         /// </summary>
37         /// <param name="url">url地址</param>
38         /// <returns></returns>
39         public Result getList(string url)
40         {
41             if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(url.Trim()))
42                 return null;//如果url為空 則立刻返回
43             Result result = new Result();
44             HtmlWeb htmlWeb = new HtmlWeb();
45             try
46             {
47                 HtmlAgilityPack.HtmlDocument htmlDoc = htmlWeb.Load(url);
48                 result.url = url;
49                 result.content = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='cnblogs_post_body']").InnerHtml;//這裡是去div id為cnblogs_post_body的全部內容  也就是我們釋出的部落格全部內容
50                 result.title = htmlDoc.DocumentNode.SelectSingleNode("//a[@id='cb_post_title_url']").InnerText; //取標題
51             }
52             catch (Exception) { return null; }
53             return result;
54         }
55     }
56 
57     public class Result
58     {
59         /// <summary>
60         /// 連結
61         /// </summary>
62         public string url { get; set; }
63         /// <summary>
64         /// 標題
65         /// </summary>
66         public string title { get; set; }
67         /// <summary>
68         /// 正文內容
69         /// </summary>
70         public string content { get; set; }
71     }
72 }

 

程式下載 密碼:5c6q  原始碼下載 密碼:60fr

如果大家有興趣可以在此基礎上進行自己的擴充套件和修改。

相關文章