輿情分析與影響的經驗記錄一

最近在做一個老師接的項目,項目名稱叫做《輿情分析與影響》。簡單講就是分析網上對某事件的評論,得出正面和反面的支持率,然後用 類似發帖機的東西,進行影響。我做的部分是 輿情影響,說難聽點就是 發帖機,說好聽點就是高端發帖機。在這個項目裏,學習到了很多的東西,想了想還是記錄在這裏比較好。主要要記錄的是兩方面:1.軟件架構;2.Httpwebrequest的使用

 

1.先講下Httpwebrequest的使用。

關於Httpwebrequest的使用,網上一搜就是一大堆。我這要寫的主要是我自己使用的經驗。

剛開始做這個東西的時候,我是這麼架構的:有一個Account抽象類,來表示賬號。在Account裏面,有一個private屬性是Httpwebrequest req。當時這麼做的思路是,Account類要經常進行發帖的操作,讓他的屬性裏面有一個Httpwebrequest會減少一些變量創建的時間。但是今天我在調試一個網站的發帖時,10條評論最後都是隻有3條會正常發帖。代碼如下所示:

我就一直在找原因,使用調試一步一步的走,但是都沒有問題。隨後我又想是不是發帖的速度太快了,就加了Thread.Sleep(),來減緩下發帖的速度。結果還是不行。。最後我就想到是不是req的問題,因爲req是一個屬性,上一次發帖可能會影響到下一次的發帖。然後我就直接在Post裏面,使用一個全新的httpwebrequest變量,結果運行順利,果然跟我想的一樣。

 

2.登陸的經驗

現在有的網站都是註冊制度,要註冊個賬號才能發帖或者幹別的事。使用httpwebrequest實現登陸主要靠的是CookieContainer。以下代碼演示的就是如何登陸

 

其中最關鍵的就是創建一個CookieContainer實例,然後使用req.CookieContainer = container來關聯起來。這樣就能保存cookie的值了。

另外比較重要的一點就是:req是否可以爲局部變量?

之前我一直以爲如果要一直保持登陸的狀態,那麼req這個變量必須是Account的一個屬性。。現在我才明白登陸信息的保存是放在cookiecontainer裏面,所以只要cookiecontainer是類的一個屬性,並且被實例化,就可以了。httpwebrequest完全可以是局部變量,而且根據我的經驗,httpwebrequest最好是局部變量,如果不是局部變量,那麼就會有可能影響到別的帖子的發表。。。

 

 

3.遠程服務器返回錯誤: (500) 內部服務器錯誤

到目前爲止,總共碰到過 404 505錯誤,今天又多了個 500錯誤。。真是痛苦啊。。。後來查了下,才發現是編碼的問題。還以爲是gb2312編碼,居然是 UTF-8。。。。。。。。。

通過這麼多遠程服務器錯誤,總結下:

如果是這類 遠程服務器返回錯誤:XXX.按照我的經驗,一般可分爲以下幾大類:1.忘了加上 cookiecontainer;2.編碼問題.其他的都忘了,啥時候記起來了,就再來這寫下。

 

今天先寫到這,語文不好,如果文字寫的很彆扭請見諒~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章