Я знаю, что есть много других мест, где я могу найти разные ответы на мою проблему, но я пробовал большинство из них, ничего не решая.
Я пытаюсь проиндексировать 85.000 файлов JSON для моего экземпляра эластичного поиска.
Файлы JSON имеют небольшой размер, на 99% меньше 2 КБ и создаются onionscan - инструментом, предназначенным для сканирования темных веб-сайтов с целью получения информации (электронные письма, адреса биткойнов и т. Д.) И выявления уязвимостей.
Мне удалось проиндексировать 90% моих файлов, но оставшиеся 10% (что является наиболее важной частью, поскольку только 10% файлов Json содержат информацию!) Не загружаются.
В настоящее время я использую этот код, который может загружать только те файлы JSON, в которых сканер Onionscan ничего не нашел:
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
}
}
Я не получаю сообщение об ошибке при попытке использовать приведенный выше код. Он просто выходит, но тогда общее количество проиндексированных JSON в Elasticsearch не соответствует ожидаемому (примерно 10.000 не индексируются). Я также попытался с Curl безуспешно (возможно, я не знаю точную команду).
Спасибо за любые предложения.