⑴ 本人想用C#做一個WEB版的網路爬蟲,具體實現給出新聞網址得到網站中新聞的標題和內容.求高人指點設計思路
一下簡單的原理:
首先模擬瀏覽獲取網頁。
其次分析網頁的內容。
最後根據自己的需要把數據儲存在資料庫中。(超級簡單吧)
備注一句:如果是分布式爬蟲的話,我考慮考慮哈,畢竟我還是很菜的哈。
在我使用的HTTP請求不帶COOKIE。
帶Cookie的代碼
using(Stream writer = Request.GetRequestStream()
{
byte[] data=Encoding.GetEncoding("UTF-8").GetBytes("cookie");
request.ContentLength = data.Length;
writer.Write(data,0,data.Length);
}
HTTP請求攜帶的POST數據
using (StreamWriter streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(postString);
streamWriter.Flush();
streamWriter.Close();
}
⑵ 什麼是網路爬蟲以及怎麼做它
網路爬蟲(又被稱為網頁蜘蛛,網路機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動的抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻,自動索引,模擬程序或者蠕蟲。
看看網路 上邊挺詳細的
⑶ 怎麼用VBA或網路爬蟲程序抓取網站數據
VBA網抓常用方法
1、xmlhttp/winhttp法:
用xmlhttp/winhttp模擬向伺服器發送請求,接收伺服器返回的數據。
優點:效率高,基本無兼容性問題。
缺點:需要藉助如fiddler的工具來模擬http請求。
2、IE/webbrowser法:
創建IE控制項或webbrowser控制項,結合htmlfile對象的方法和屬性,模擬瀏覽器操作,獲取瀏覽器頁面的數據。
優點:這個方法可以模擬大部分的瀏覽器操作。所見即所得,瀏覽器能看到的數據就能用代碼獲取。
缺點:各種彈窗相當煩人,兼容性也確實是個很傷腦筋的問題。上傳文件在IE里根本無法實現。
3、QueryTables法:
因為它是excel自帶,所以勉強也算是一種方法。其實此法和xmlhttp類似,也是GET或POST方式發送請求,然後得到伺服器的response返回到單元格內。
優點:excel自帶,可以通過錄制宏得到代碼,處理table很方便
。代碼簡短,適合快速獲取一些存在於源代碼的table里的數據。
缺點:無法模擬referer等發包頭
也可以利用採集工具進行採集網頁端的數據,無需寫代碼。
⑷ 如何讓網頁被爬蟲抓取
爬蟲就是自動提取網頁的程序,如網路的蜘蛛等,要想讓自己的網站更多頁面被收錄,首先就要讓網頁被爬蟲抓取。
如果你的網站頁面經常更新,爬蟲就會更加頻繁的訪問頁面,優質的內容更是爬蟲喜歡抓取的目標,尤其是原創內容。
如果你做了許多努力仍沒有被爬蟲抓取,可以看一下老漁哥給出的兩點建議:
1、不建議站點使用js生成主體內容,如過js渲染出錯,很可能導致頁面內容讀取錯誤,頁面則無法被爬蟲抓取。
2、許多站點會針對爬蟲做優化,建議頁面長度在128k之內,不要過長。
⑸ 如何通過web的方式開發配置,並調度監控自己的爬蟲
果有資金專門做這塊的話,市面上已經存在火車頭、八爪魚 這樣的抓取軟體,小白用戶用的還是不錯的。
但是如果要對所有的爬蟲進行統一管理和部署的話,需要有一個通用的框架,類似 Hadoop中 確定了 map和rece的介面,在裡面實現所有的抓取操作,對於任務的分配,如果是java的話,就需要提交jar包之類的。
另外是心跳機制,如何確定一個爬蟲在按照既有的規則在執行,別當了之後還不知道,這個時候心跳中就可以存儲 當前抓取的數據量、異常數、當前程序運行時間等。這個可以通過監測管理頁面來展示等。
另外就是如果是抓取同類別的爬蟲,比如新聞類 這個通用框架是沒有問題的,但是在抓取特定數據的時候 比如 企業信息、旅遊數據等 這些都不按規則套路出牌,如果硬要套框架的話 就得不償失了,反不如直接寫代碼來的順手,畢竟網路採集 關注的是獲取的數據,而不是獲取的方式。
⑹ 你好!你有用C#做過一個WEB版的網路爬蟲的網頁嗎
用網頁做爬蟲,不如做成EXE,因為穩定
爬蟲的原理就是:先弄到網頁的html,然後正則匹配,然後保存,就OK了
⑺ 如何使用爬蟲做一個網站
做法:傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析演算法過濾與主題無關的鏈接,保留有用的鏈接並將其放入等待抓取的URL隊列。
然後,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出反饋和指導。
⑻ java 網路爬蟲怎麼實現
代碼如下:
packagewebspider;
import
java.util.HashSet;
importjava.util.PriorityQueue;
import
java.util.Set;
importjava.util.Queue;
publicclassLinkQueue{
//已訪問的url集合
privatestaticSetvisitedUrl
=newHashSet();
//待訪問的url集合
=new
PriorityQueue();
//獲得URL隊列
(){
return
unVisitedUrl;
}
//添加到訪問過的URL隊列中
publicstaticvoidaddVisitedUrl(Stringurl)
{
visitedUrl.add(url);
}
//移除訪問過的URL
(Stringurl)
{
visitedUrl.remove(url);
}
//未訪問的URL出隊列
(){
return
unVisitedUrl.poll();
}
//保證每個url只被訪問一次
(Stringurl)
{
if(url!=null&&!url.trim().equals("")&&
!visitedUrl.contains(url)
&&
!unVisitedUrl.contains(url))
unVisitedUrl.add(url);
}
//獲得已經訪問的URL數目
(){
return
visitedUrl.size();
}
//判斷未訪問的URL隊列中是否為空
()
{
returnunVisitedUrl.isEmpty();
}
}