def main(spider_target_fname): # Задание получено в предыдущий сериях rpt = [] # Задание загружаем из файла json_target, err = dal.read_utf_file_to_list_lines(spider_target_fname+'.json') if not json_target: print 'Failure occure: ', err[1] var = raw_input("Press any key.") print 'Quit' exit() target = json.loads(' '.join(json_target)) # Рельные задание с именами файлов и узлов nodes_and_urls, err = get_path_tasks(spider_target_fname+'.txt') def get_node_and_url(line): node = get_node_name(line) url = get_url(line) return (node, url) nodes_and_urls_pkt = map(get_node_and_url, nodes_and_urls) # Можно переводить в текст for pair in nodes_and_urls_pkt: # Почему-то нужно создавать каждый раз! extractor = TextExtractorFromOdtDocPdf() node = pair[0] url = pair[1] index_name = target[kKeyIndexName] app_folder, index_path, index_root, tmp_root = tools.get_pathes_complect(index_name) path_to_index = tmp_root path_to_tmp_node = tmp_root+'/'+node result, err = extractor.process(url, path_to_tmp_node) print result, err if err[0]: rpt.append(err[1]) break return rpt
def scribe_index(target, spider_target_fname): rpt = [] # Запускаем разметчик index_name = target[kKeyIndexName][0] app_folder, index_path, index_root, tmp_root = tools.get_pathes_complect(index_name) # Ключевые папки в индексе, в них располагаются узлы tmp_root = index_path+"/freq_index" # путь к папке с временными файлами content_root = index_path+"/content" # папка с раздроблеммым контентом и готовым к обработке index_root = index_path+"/tmp" # путь к индексу? compressed_index_root = index_path+"/compressed_freq_index" # путь к сжатому индексу folders = [tmp_root, content_root, index_root, compressed_index_root] print 'App folder root -', app_folder print 'Index root -', index_path if not os.path.exists(app_folder): os.makedirs(app_folder) # Директория существует if not os.path.exists(tmp_root): os.makedirs(tmp_root) else: # TODO(zaqwes): плохо что если переименовывать, то нужно заново # запускать поиск rpt.append('Error : Index exist. In current version it no '+ 'enabled. Remove it or rename in target.') rpt.append(' Name - '+tmp_root) return rpt # Только в разработческой версии # Директория существует if not os.path.exists(index_root): os.makedirs(index_root) else: # TODO(zaqwes): плохо что если переименовывать, то нужно заново # запускать поиск rpt.append('Error : Index exist. In current version it no '+ 'enabled. Remove it or rename in target.') rpt.append(' Name - '+index_root) return rpt # Только в разработческой версии # Проверяем папку индексов # Нужно ли делать разметку по узлам во временной папке, да, нужно # если анализировать прочими средствами # Размечаем структуру узлов def get_one_node(line): line = line.split('*')[0] line = line.replace('[','') node = util.remove_forward_and_back_spaces(line.replace(']','')) return node jobs_list, err = get_path_tasks(spider_target_fname) if err[0]: rpt.append(err) #map(util.printer, jobs_list) nodes = map(get_one_node, jobs_list) for node in nodes: for folder in folders: path = folder+'/'+node if not os.path.exists(path): os.makedirs(path) return rpt
import nlp_components as nlp if __name__=='__main__': spider_target_fname = 'targets/spider_extractor_target' # Задание загружаем из файла json_target, err = dal.read_utf_file_to_list_lines(spider_target_fname+'.json') if not json_target: print 'Failure occure: ', err[1] var = raw_input("Press any key.") print 'Quit' exit() target = json.loads(' '.join(json_target)) map(printer, target.items()) index_name = target[kKeyIndexName] app_folder, index_path, index_root, tmp_root = tools.get_pathes_complect(index_name) print app_folder, index_path, index_root, tmp_root # TODO(zaqwes): узлы лучше брать из задания nodes = [d for d in os.listdir(tmp_root) if os.path.isdir(os.path.join(tmp_root, d))] for node in nodes: path_to_node = tmp_root+'/'+node items = [path_to_node+'/'+d for d in os.listdir(path_to_node) if d.split('.')[-1] == 'ptxt'] # Для каждого из файлов в узле result_data_one = [] for item in items: print item content_list, err = dal.read_utf_file_to_list_lines(item) print content_list, err nlp.split_to_sentents(content_list, result_data_one)