最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python爬取cnvd漏洞庫信息的實例

 更新時間:2019年02月14日 15:34:41   作者:黑面狐  
今天小編就為大家分享一篇python爬取cnvd漏洞庫信息的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

今天一同事需要整理http://ics.cnvd.org.cn/工控漏洞庫里面的信息,一看960多個要整理到什么時候才結(jié)束。

所以我決定寫個爬蟲幫他抓取數(shù)據(jù)。

看了一下各類信息還是很規(guī)則的,感覺應(yīng)該很好寫。

but這個網(wǎng)站設(shè)置了各種反爬蟲手段。

經(jīng)過各種百度,還是解決問題了。

設(shè)計思路:

1.先抓取每一個漏洞信息對應(yīng)的網(wǎng)頁url

2.獲取每個頁面的漏洞信息

# -*- coding: utf-8 -*-
import requests
import re
import xlwt
import time
from bs4 import BeautifulSoup
headers = {
 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
 'Accept-Encoding': 'gzip, deflate, sdch',
 'Accept-Language': 'zh-CN,zh;q=0.8',
 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'
}
cookies={'__jsluid':'8d3f4c75f437ca82cdfad85c0f4f7c25'}
myfile=xlwt.Workbook()
wtable=myfile.add_sheet(u"信息",cell_overwrite_ok=True)
j = 0
a = 900
for i in range(4):
 url ="http://ics.cnvd.org.cn/?max=20&offset="+str(a)
 r = requests.get(urttp://ics.cnvd.org.cnl,headers=headers,cookies=cookies)
 print r.status_code
 while r.status_code != 200:
  r = requests.get(url,headers=headers,cookies=cookies)
  print r.status_code
 html = r.text
 soup = BeautifulSoup(html)
 #print html
 
 for tag in soup.find('tbody',id='tr').find_all('a',href=re.compile('http://www.cnvd.org.cn/flaw/show')):
  print tag.attrs['href']
  wtable.write(j,0,tag.attrs['href'])
  j += 1
 a += 20
 print u"已完成%s"%(a)
filename=str(time.strftime('%Y%m%d%H%M%S',time.localtime()))+"url.xls"
myfile.save(filename)
print u"完成%s的url備份"%time.strftime('%Y%m%d%H%M%S',time.localtime())
# -*- coding: utf-8 -*-
from selenium import webdriver
import xlrd
import xlwt
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
 
class Gk(unittest.TestCase):
 def setUp(self):
  self.driver = webdriver.Firefox()
  self.driver.implicitly_wait(5)
  self.verificationErrors = []
  self.accept_next_alert = True
 
 def test_gk(self):
  myfile=xlwt.Workbook()
  wtable=myfile.add_sheet(u"info",cell_overwrite_ok=True)
  data = xlrd.open_workbook('url.xlsx')
  table = data.sheets()[0]
  nrows = table.nrows
  driver = self.driver
  
  j = 0
  for i in range(nrows):
   try:
    s = []
    driver.get(table.cell(i,0).value)
    title = driver.find_element_by_xpath("http://h1").text
    print title
    s.append(title)
    trs = driver.find_element_by_xpath("http://tbody").find_elements_by_tag_name('tr')
    for td in trs:
     tds = td.find_elements_by_tag_name("td")
     for tt in tds:
      print tt.text
      s.append(tt.text)
    k = 0
    for info in s:
     wtable.write(j,k,info)
     k += 1
    j += 1
   except:
    filename=str(time.strftime('%Y%m%d%H%M%S',time.localtime()))+"url.xls"
    myfile.save(filename)
    print u"異常自動保存%s的漏洞信息備份"%time.strftime('%Y%m%d%H%M%S',time.localtime())
   
  filename=str(time.strftime('%Y%m%d%H%M%S',time.localtime()))+"url.xls"
  myfile.save(filename)
  print u"完成%s的漏洞信息備份"%time.strftime('%Y%m%d%H%M%S',time.localtime())
  
 def is_element_present(self, how, what):
  try: self.driver.find_element(by=how, value=what)
  except NoSuchElementException, e: return False
  return True
 
 def is_alert_present(self):
  try: self.driver.switch_to_alert()
  except NoAlertPresentException, e: return False
  return True
 
 def close_alert_and_get_its_text(self):
  try:
   alert = self.driver.switch_to_alert()
   alert_text = alert.text
   if self.accept_next_alert:
    alert.accept()
   else:
    alert.dismiss()
   return alert_text
  finally: self.accept_next_alert = True
 
 def tearDown(self):
  self.driver.quit()
  self.assertEqual([], self.verificationErrors)
 
if __name__ == "__main__":
 unittest.main()

好了??纯唇Y(jié)果怎樣!

python爬取cnvd漏洞庫信息

OK!剩下手動整理一下,收工!

以上這篇python爬取cnvd漏洞庫信息的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python開啟多個子進(jìn)程并行運行的方法

    python開啟多個子進(jìn)程并行運行的方法

    這篇文章主要介紹了python開啟多個子進(jìn)程并行運行的方法,涉及Python進(jìn)程操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • Python+tkinter實現(xiàn)高清圖片保存

    Python+tkinter實現(xiàn)高清圖片保存

    作為愛玩電腦的你是不是也需要經(jīng)常更換一下自己的電腦壁紙呢?但是在網(wǎng)上有很多心儀的圖片想要保存下來,如果一張張的去保存那效率又低。所以本文用Python寫一個保存圖片的功能,把我們的圖片給保存到我們的電腦,需要的可以參考一下
    2022-03-03
  • Gradio機(jī)器學(xué)習(xí)模型快速部署工具quickstart前篇

    Gradio機(jī)器學(xué)習(xí)模型快速部署工具quickstart前篇

    這篇文章主要為大家介紹了Gradio機(jī)器學(xué)習(xí)模型快速部署工具quickstart準(zhǔn)備原文翻譯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 淺談Python基礎(chǔ)—判斷和循環(huán)

    淺談Python基礎(chǔ)—判斷和循環(huán)

    這篇文章主要介紹了Python基礎(chǔ)—判斷和循環(huán),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 圖文詳解牛頓迭代算法原理及Python實現(xiàn)

    圖文詳解牛頓迭代算法原理及Python實現(xiàn)

    牛頓迭代法又稱為牛頓-拉夫遜(拉弗森)方法,它是牛頓在17世紀(jì)提出的一種在實數(shù)域和復(fù)數(shù)域上近似求解方程的方法。本文將利用圖文詳解牛頓迭代算法原理及實現(xiàn),需要的可以參考一下
    2022-08-08
  • 代碼詳解django中數(shù)據(jù)庫設(shè)置

    代碼詳解django中數(shù)據(jù)庫設(shè)置

    在本篇文章里小編給大家分享了關(guān)于django中數(shù)據(jù)庫設(shè)置的相關(guān)實例內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)下。
    2019-01-01
  • Django密碼存儲策略分析

    Django密碼存儲策略分析

    這篇文章主要介紹了Django密碼存儲策略分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Python開發(fā)的HTTP庫requests詳解

    Python開發(fā)的HTTP庫requests詳解

    Requests是用Python語言編寫,基于urllib,采用Apache2 Licensed開源協(xié)議的HTTP庫。它比urllib更加方便,可以節(jié)約我們大量的工作,完全滿足HTTP測試需求。Requests的哲學(xué)是以PEP 20 的習(xí)語為中心開發(fā)的,所以它比urllib更加Pythoner。更重要的一點是它支持Python3哦!
    2017-08-08
  • Python開發(fā)網(wǎng)站目錄掃描器的實現(xiàn)

    Python開發(fā)網(wǎng)站目錄掃描器的實現(xiàn)

    這篇文章主要介紹了Python開發(fā)網(wǎng)站目錄掃描器的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Django之choices選項和富文本編輯器的使用詳解

    Django之choices選項和富文本編輯器的使用詳解

    這篇文章主要介紹了Django之choices選項和富文本編輯器的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論

内黄县| 麻阳| 安化县| 绵阳市| 会泽县| 健康| 荔波县| 钦州市| 南川市| 勃利县| 西乡县| 临邑县| 邢台市| 瓦房店市| 大连市| 揭西县| 襄城县| 忻城县| 阿巴嘎旗| 定日县| 历史| 巴里| 马尔康县| 隆林| 莆田市| 怀远县| 正定县| 米泉市| 璧山县| 湘阴县| 泰兴市| 高陵县| 华安县| 深水埗区| 交口县| 陇西县| 昌平区| 祁阳县| 门头沟区| 北流市| 鹿泉市|