如何将数千个json文件批量加载到elasticsearch

时间:2019-05-20 14:53:13

标签: json elasticsearch load

我知道在很多其他地方,我可以找到解决问题的不同答案,但是我尝试了其中的大多数,却没有解决任何问题。

我正在尝试将85.000个JSON文件索引到我的elasticsearch实例中。 JSON文件很小,小于2 Kb的99%,是由onionscan创建的,该工具旨在抓取黑暗的网站,以获取信息(电子邮件,比特币地址等)并识别漏洞。

我已经能够索引90%的文件,但其余10%(这是最重要的部分,因为只有10%的Json文件包含信息!)不会被加载。

当前,我正在使用此代码,该代码只能加载Onionscan搜寻器未发现任何内容的JSON:

    import requests, json, os
    from elasticsearch import Elasticsearch

    directory = 'C:/Users/Hp/onionscan_results'

    res = requests.get('http://localhost:9200')
    print ("Loading JSON objects to Elasticsearch. Please wait...")
    es = Elasticsearch([{'host': 'localhost', 'port': '9200'}])

    i = 1

    for filename in os.listdir(directory):
        if filename.endswith(".json"):
         f = open(filename)
         docket_content = f.read()
            # Send the data into es
         es.index(index='darkweb', ignore=400, doc_type='docket', id=i, 
     body=json.loads(docket_content))
         i = i + 1

这是我的仓库中的JSON示例:

     {  
       "hiddenService":"qnzsbipihn3coe63.onion",
       "dateScanned":"2019-04-17T20:57:16.185098805Z",
       "online":false,
       "performedScans":[  
          "web"
       ],
       "webDetected":true,
       "crawls":{  
          "http://qnzsbipihn3coe63.onion/":3575956962652378467,
       },
       "pgpKeys":null,
       "certificates":null,
       "bitcoinServices":{  
          "bitcoin":{  
             "detected":false,
          },
          "bitcoin_test":{  
             "detected":false,
          },
          "litecoin":{  
             "detected":false,
             "userAgent":"",
             "prototocolVersion":0,
             "onionPeers":null
          }
       },
       "sshKey":"",
       "identifierReport":{  
          "privateKeyDetected":false,
          "foundApacheModStatus":false,
       },
       "simpleReport":{  
          "hiddenService":"qnzsbipihn3coe63.onion",
          "risks":null
       }
    }

尝试上述代码时,我没有收到任何错误消息。它只是退出,但是然后Elasticsearch中索引的JSON总数不是我期望的(大约10.000没有得到索引)。我还尝试了Curl,但没有成功(也许我不知道确切的命令)。

谢谢您的任何建议。

0 个答案:

没有答案