使用c 製作網路爬蟲,檢查站點可訪問性

2022-05-14 04:24:19 字數 824 閱讀 2586

前幾天自己負責的**出現了不能訪問的問題,系統監控程式通過告警將這一資訊告訴了管理員。管理員找到了我,告訴我站點不能正常訪問。後來問題查明,是負載均衡器出了問題。自己在檢查站點的時候,發現有些不能正確顯示,原因是鏈結無效。

後來我就在總結這次故障,監控程式只能檢測幾個配置的鏈結,不可能對整個站點所有鏈結進行檢測,不然配置檔案要寫一大堆。如果是配置外的鏈結不能訪問,那不是就沒有辦法告知管理員了嗎,況且現在的監控程式也不能檢查頁面能否正常顯示。如果每次都要人工去檢查,那是相當不現實的,那我能不能寫個小程式去實現自動檢查,並把檢查結果已郵件的形式傳送給相關人員呢?於是我想到了,可以使用網路爬蟲幹這件事情,當然這個爬蟲是定製版的,只爬當前站點。

首先建立乙個控制台程式(其他型別的工程也可以),命名為webresourceinspector。

新建三個檔案:inspector.cs,emailhelper.cs,config.xml。結果如下:

程式實現原理:

通過httpwebrequest,httpwebresponse獲取首頁的html資訊,通過htmlagilitypack結合xpath獲取到所有的a標籤和。把所有的鏈結和位址放到待檢查佇列unvisitedpageurllist中。放入之前要檢查當前鏈結是否已經檢查過。只有已當前站點網域名稱開頭的鏈結才做頁面html的進一步爬取,獲取下面頁面的鏈結資訊並放入待檢查佇列。以此類推,直到站點內所有鏈結都檢查完畢。非本站網域名稱開頭鏈結只做可訪問性判斷。程式裡我使用了多執行緒,以提高執行效率。執行緒數在配置檔案裡配置。把所有的錯誤記錄日誌,最後傳送郵件,通知管理員。

網路爬蟲 c 版

程式整體思路 給出種子檔案,解析種子檔案,然後得出相應 加入佇列,取樣廣度優先,在之前出現過問題,經過一一修復之後,沒有問題,經過我一天的測試,驗證。使用記憶體大約幾兆左右。include include include include include include include pragma ...

python製作乙個簡單網路爬蟲

這章我們用python標準庫urllib2來實現簡單的網路爬蟲 本章很簡單適合小白,不喜勿噴 一 urllib2定義了以下方法 urllib2.urlopen url,data,timeout data引數 post資料提交 例如 賬號密碼傳送給伺服器判斷登陸 url引數 網頁url,可接受requ...

使用selenium進行網路爬蟲

from selenium import webdriver import datetime import pandas as pd import time import difflib import multiprocessing as mp import datetime def string ...