整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Nessus使用教程

          Nessus使用教程

          essus是一個功能強大而又易于使用的遠程安全掃描器,它不僅免費而且更新極快。安全掃描器的功能是對指定網絡進行安全檢查,找出該網絡是 否存在有導致對手攻擊的安全漏洞。該系統被設計為client/sever模式,服務器端負責進行安全檢查,客戶端用來配置管理服務器端。在服務端還采用 了plug-in的體系,允許用戶加入執行特定功能的插件,這插件可以進行更快速和更復雜的安全檢查。在Nessus中還采用了一個共享的信息接口,稱之 知識庫,其中保存了前面進行檢查的結果。檢查的結果可以HTML、純文本、LaTeX(一種文本文件格式)等幾種格式保存。



          1、 打開瀏覽器輸入IP加端口8834登錄Nessus2、 輸入賬號密碼,

          3、 登錄成功后,進入到首頁

          4、 點擊側邊欄policies,顯示策略界面

          5、 點擊new policy,顯示策略模板

          6、 選擇advanced scan,填寫策略名稱

          7、 點擊permission,選擇can use,設置所有人可用

          8、 單擊Plugins標簽,該界面顯示了所有插件程序,默認全部是啟動的enabled。在該界面可以單擊右上角Disable All按鈕,禁用所有啟動的插件程序。或直接點擊enabled狀態,即可禁用該插件。

          9、 點擊save即可看到新增的策略,表示該策略創建成功。

          10、 策略創建成功后,必須要新建掃描任務才能實現漏洞掃描。點擊My Scans到新增掃描任務界面,點擊New scan新建掃描任務。可以選擇默認掃描策略。

          11、 也可以點擊user Defined選擇自定義添加的掃描策略

          12、 輸入任務名稱,掃描IP地址。點擊save即可看到新增的掃描任務。

          13、 新增的掃描任務狀態為空

          14、 點擊launch,啟動掃描任務,可看到任務正在running,可停止或者暫停掃描任務

          15、 掃描完成后即顯示completed,點擊該任務即可查看到掃描報告。右側顯示詳細掃描任務詳細信息,如掃描任務名稱、狀態、策略、掃描時間等。右下角以圓形圖顯示了漏洞的危險情況,分別使用不同顏色顯示漏洞的嚴重性。

          16、 關于漏洞的信息使用在該界面可以單擊Host列中的顯示的地址,顯示掃描主機的漏洞情況,該列中的數字表示掃描到的信息數。本例中選擇172.24.1.62地址。使用的自定義策略。

          17、 點擊某一漏洞,將顯示具體的漏洞信息

          18、 點擊export,即可導出掃描報告,可選擇Nessus、HTML、CSV和Nessus DB格式

          19、 選擇custom點擊export可下載

          20、 導出摘要顯示如圖

          導出詳細報告顯示如圖


          版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。本文鏈接:https://blog.csdn.net/guo_yan_gy/article/details/88840725

          們使用Power BI Desktop來制作上面這個圖形,需要歷年保險保費收入的數據作為依據,網站上有數據公布:

          這個頁面的地址:

          /web/site0/tab5205/info4129096.htm

          每個月都會有一個對應的地址,要到那里找到這些個地址呢?

          我們找到了這樣一個頁面:

          這個頁面里有我們需要的每個月的數據的連接,這樣的頁面一共有8個,這8個頁面的URL是連續的。

          web/site0/tab5205/module14413/page1.htm

          就是page1到page8

          我們打開Power BI Desktop的Power Query,建立一個1到8的表

          并且把ID這一列設置成文本,這是第一步。

          第二步:要建立一個查詢,從web獲取數據,設置乘csv格式

          復制地址欄里的公式,備用。(實在記不住這些函數,這樣偷點懶,嘻嘻)

          第三步:回到開始的表,自定義列,用剛才復制的公式,修改一下。

          page后面的數字用ID替換一下。

          第四步:數據清理,我們要的是每個月的URL,這個過程稍微有點復雜,但是用到的功能很簡單,就是符號分列,篩選,替換。

          1、用<a href="分列,會直接把我們需要的URL分離出來

          2、篩選出帶有info的行

          3、再分列,用雙引號分列

          至此已經得到了我們想要的URL.

          4、為了能夠區分年月,還需要做些處理,取title后面的列,提取出來年和月,這部分就略過了。結果是這樣的:

          第五步:獲取具體數據,如果不記得函數,還是先建立一個自web的查詢,復制公式,然后自定義列。

          用URL替換網址后面的部分。

          第六步:展開并整理數據,這里要注意幾個地方

          1、刪除列要修改一下,保留年和月兩列

          2、篩選掉所有的非省市名稱的行

          3、統一所有的省市名稱,自己想想辦法吧

          4、逆透視列

          最終的結果:

          剩下的工作就回到Power BI Desktop用DAX建立度量值,作圖就可以了。

          總結一下,如果想從網頁中獲得需要的信息,就要抓住關鍵信息,Web信息有幾種格式,要從源碼中找信息,就用CSV格式,要找網頁中的信息,就用HTML格式。不管用PQ還是PY網絡抓取數據,都是一個找規律的過程,找到了規律,就能行。

          某網站讀取表格里面的內容,簡單處理后寫入CSV文件。需要留意:查找某些字符是否存在,查找其位置,按照位置讀取字符串內容,Python真的蠻靈活的。后續還會做兩個文件的比較,以及文件內容的刪除。讓已實現的功能具有普適性,抽取函數供不同場景使用,這才有軟件工程的思想。

          實踐Python

          fileName="SplitNo";

          nowTime=datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')

          filePath=fileName + nowTime + ".csv";

          csvFile=open(filePath, 'w', newline='', encoding='utf-8')

          writer=csv.writer(csvFile,dialect='excel')

          head=["頁數","序號","編號", "產品名稱", "原始文本"]

          writer.writerow(head)

          startPage=1;

          totalPage=1260;

          wait.until(EC.presence_of_element_located((By.ID, "content")))

          browser.find_element_by_id("page").clear()

          browser.find_element_by_id("page").send_keys(str(startPage));

          browser.find_elements_by_xpath('//input[@src="images/dataanniu_11.gif"]')[0].click();

          time.sleep(3)

          n=startPage;

          while n < totalPage:

          wait.until(EC.presence_of_element_located((By.ID, "content")))

          content=browser.find_element_by_id("content");

          oneThanOneLine=False;

          for attr in content.find_elements_by_tag_name("a"):

          text=str(attr.get_attribute('innerHTML'))

          text=text.replace('\r', '').replace('\n', '').replace('\t', '')

          print(str(text) + "查詢位置:" + (str)(text.find(".")))

          if text.find(".") !=-1:

          csvRow=[]

          csvRow.append(str(n))

          pos=findPos(text)

          if pos !=-1:

          name=text[0:pos-1]

          notext=text[pos:-1]

          csvRow.append(name.split(".")[0])

          csvRow.append(notext.split(" ")[0])

          if name.__len__() > 1:

          csvRow.append(name.split(".")[1])

          csvRow.append(text)

          writer.writerow(csvRow)

          preText=text

          oneThanOneLine=False

          else:

          preText=preText + text;

          #p=re.compile(r'[<](.*?)[>]', re.S)

          # matches=re.findall(cleanr, preText)\

          #for match in matches:

          # print(match)

          cleanr=re.compile('<.*?>')

          preText=re.sub(cleanr, '', preText)

          print(preText)

          oneThanOneLine=True

          n=n + 1

          wait.until(EC.presence_of_element_located((By.ID, "page")))

          browser.find_element_by_id("page").clear()

          browser.find_element_by_id("page").send_keys(str(n))

          browser.find_elements_by_xpath('//input[@src="images/xxxx.gif"]')[0].click()

          print("已經切換到新一頁:" + str(n))

          csvFile.close()

          browser.close()

          碰到的問題:

          1、TypeError: expected string or bytes-like object

          使用場景:content=browser.find_element_by_id("content");

          tdList=re.findall(r'<td[^>]*>(.*?)</td>', str(content.get_attribute('innerHTML')), re.I | re.M)

          if tdList:

          for item in tdList:

          print(item)

          使用函數:re.findall(pattern,string,flag)

          pattern匹配的是字符串,需要把第二個參數轉化為string類型就可以。

          2、對循環列表的最后一個元素進行特別處理

          使用場景:aTag=attr.find_elements_by_tag_name("a")

          if aTag.__len__()>1:

          for aText in aTag:

          if aTag.__len__() - 1==aTag.index(aText):

          print(aText )

          3、超時跳轉使用wait元素比較靠譜些

          wait.until(EC.presence_of_element_located((By.ID, "content")))

          print(str(n) + "img[@src='images/dataanniu_07.gif'])")

          content=browser.find_element_by_id("content");

          content.find_elements_by_xpath('//img[@src="images/dataanniu_07.gif"]')[0].click();'''

          4、查詢某字符串里面的HTML字符

          p=re.compile(r'[<](.*?)[>]', re.S)

          matches=re.findall(p, preText)

          for match in matches:

          print(match)

          5、清除某字符串里面的HTML字符

          cleanr=re.compile('<.*?>')

          preText=re.sub(cleanr, '', preText)

          6、記錄程序執行時間

          import datetime

          startTime=datetime.datetime.now()

          endTime=datetime.datetime.now()

          print(endTime - startTime).seconds

          7、等待元素的方法

          隱式等待:(WebDriver類下的)implicitly_wait(X),在X時間內,頁面加載完成,進行下一步操作。首先Implicit Waits默認是等待時間是0,同時隱性等待是對driver起作用,所以只要設置一次即可,比強制等待更智能

          缺點:非要加載到整個頁面才能執行代碼,這樣影響代碼的執行效率。一般情況下,我們想要的結果是只需加載到了我要定位的元素就執行代碼,不需要等待整個頁面的完全加載出來再執行代碼。

          Sleep顯式等待:最簡單的一種辦法就是強制等待sleep(X),強制讓瀏覽器等待X秒,不管當前操作是否完成,是否可以進行下一步操作,都必須等X秒的時間。

          缺點是不能準確把握需要等待的時間;優點是使用簡單,可以在調試時使用。

          WebDriverWait顯示等待:無需等待整個頁面加載完成,只需加載到你要定位的元素就可以執行代碼。

          優點:代碼執行效率快。是最智能的設置元素等待的方式。

          缺點:需要導入webdriver下的expected_conditions、WebDriverWait、By三個包;寫等待時間的代碼稍顯復雜。


          主站蜘蛛池模板: 伊人久久大香线蕉AV一区二区 | 亚洲丰满熟女一区二区哦| 亚洲一区视频在线播放| 一区二区三区四区无限乱码| 精品亚洲AV无码一区二区三区| 波多野结衣一区在线| 国模无码一区二区三区| 久久青草精品一区二区三区| 无码少妇一区二区性色AV| 一区二区三区福利| 国模精品一区二区三区视频| 久久精品道一区二区三区| 久久国产视频一区| 亚洲国产欧美一区二区三区| 亚洲综合无码一区二区痴汉| 亚洲电影唐人社一区二区| 国产成人精品一区二区A片带套| 视频一区二区在线播放| 在线观看午夜亚洲一区| 无码视频一区二区三区| 无码人妻少妇色欲AV一区二区| 国产成人综合亚洲一区| 麻豆一区二区免费播放网站| 人妻免费一区二区三区最新| 国产一区二区精品久久91 | 精品日韩一区二区| 国产伦理一区二区| 亚洲一区二区三区在线观看精品中文 | 日本免费一区尤物| 国精产品一区一区三区免费视频 | 国产A∨国片精品一区二区| 久久无码AV一区二区三区| a级午夜毛片免费一区二区| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲AV无码一区东京热| 成人免费一区二区三区在线观看| 在线播放国产一区二区三区| 国产福利电影一区二区三区,日韩伦理电影在线福 | 免费无码毛片一区二区APP| 国产色欲AV一区二区三区| 免费日本一区二区|