def get_target(target_fname, spider_target_fname): def printer(msg): print msg raw_target, err = local_dal.read_utf_file_to_list_lines(target_fname) target = get_target_object(raw_target) print 'Source target: ' map(printer, target.items()) rpt = check_crawler_target(target) print print 'Rpt:' map(printer, rpt) # Можно передавать краулеру на посик файлов - DataIsSafe # поиск print print 'Begin finding' roots = target[kKeyRoot] extension_list = target[kKeyTargetExts] ignored_dirs = target[kKeyIgnoredDir] result_list, err = os_walker.find_files_down_tree_roots(roots, extension_list, ignored_dirs) if err[0]: print err[1] print 'End finding' # Разбираем не узлы target_for_spider, rpt = fill_target_for_spider(result_list) if rpt: print print 'Rpt:' map(printer, rpt) fname = spider_target_fname local_dal.write_result_file(target_for_spider, fname) #print '\nResult target:' #map(printer, target.items()) print print 'Nodes and urls write to file - '+fname return target
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
err_msg = '\n'.join(formatted_lines) print err_msg print sys.path var = raw_input("Press any key.") def printer(msg): print msg if __name__=='__main__': rpt = [] # Запускаем крулер spider_target_fname = 'targets/spider_extractor_target' #.txt' # Задание загружаем из файла 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)) # TODO(zaqwes): может задание в json сохранять для передачи разметчику, а то # при любых ошибках нужно заново запускать поиск rpt = scribe_index(target, spider_target_fname+'.txt') if rpt: map(printer, rpt)
def get_path_tasks(spider_target_fname): """ Нужно удалить комментарии """ jobs_list, err = local_dal.read_utf_file_to_list_lines(spider_target_fname) jobs_list = util.remove_comments_from_task(jobs_list) return jobs_list, err