1. 程式人生 > 程式設計 >基於Python爬取fofa網頁端資料過程解析

基於Python爬取fofa網頁端資料過程解析

FOFA-網路空間安全搜尋引擎是網路空間資產檢索系統(FOFA)是世界上資料覆蓋更完整的IT裝置搜尋引擎,擁有全球聯網IT裝置更全的DNA資訊。探索全球網際網路的資產資訊,進行資產及漏洞影響範圍分析、應用分佈統計、應用流行度態勢感知等。

安裝環境:

pip install requests
pip install lxml
pip install fire

使用命令:

python fofa.py -s=title="你的關鍵字" -o="結果輸出檔案" -c="你的cookie"

程式碼如下:

import requests,time,base64,fire
from lxml import etree
def fofasc(s,o,c):
  try:
    sbase64 = (base64.b64encode(s.encode('utf-8'))).decode('utf-8')
    cookies = {
      "_fofapro_ars_session": c
    }
 
    headers = {
      'User-Agent': 'Mozilla/5.0 (Linux; Android 7.1.2; PCRT00 Build/N2G48H; wv) AppleWebKit/537.36 (KHTML,like Gecko) Version/4.0 Chrome/66.0.3359.158 Safari/537.36 fanwe_app_sdk sdk_type/android sdk_version_name/4.0.1 sdk_version/2020042901 screen_width/720 screen_height/1280',}
    for i in range(1,1000):
      url = "https://www.fofa.so/result?q="+s+"&qbase64="+sbase64+"&full=true&page="+str(i)
      r = requests.get(url,headers=headers,cookies=cookies)
      soup = etree.HTML(r.text)
      result = soup.xpath('//*[@id="ajax_content"]/div/div/div/a/text()')
      print(result)
      if result != []:
        for rs in result:
          with open(o,mode="a+") as f:
            f.write(rs+"\n")
      else:
        print("已經獲取不到任何資料,爬取完畢!")
        break
      time.sleep(2)
  except KeyboardInterrupt:
    print('使用者退出')
if __name__ == '__main__':
  fire.Fire(fofasc)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。