Ejemplo n.º 1
0
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
Ejemplo n.º 3
0
    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)
    
        
Ejemplo n.º 4
0
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