我知道在很多其他地方,我可以找到解决问题的不同答案,但是我尝试了其中的大多数,却没有解决任何问题。
我正在尝试将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,但没有成功(也许我不知道确切的命令)。
谢谢您的任何建议。