Получите список URL от [закрытого] сайта

Вот обновленное решение

. Большая проблема предыдущего кода заключалась в том, что он не мог динамически вычислять ширину столбцов. Поэтому необходимо было указать с каждым столбцом.

Эта версия исправляет эту проблему.

@Directive({
  selector: '[cdkFixedHeader]'
})

export class FixedHeaderDirective implements AfterViewInit{

    constructor(private el: ElementRef, private renderer:Renderer2) {}

    ngAfterViewInit(){

        // get the viewport element
        let cdkViewport = this.el.nativeElement.closest("cdk-virtual-scroll-viewport");

        // check if table was already cloned
        let clonedHeader = cdkViewport.querySelectorAll('.cloned-header');

        // create a clone if not exists
        if (clonedHeader.length == 0)
        {
            let table = this.el.nativeElement.closest('table');
            let cloned = table.cloneNode(true);
                cloned.style.position = 'sticky';
                cloned.style.top = '0';
                cloned.style.zIndex = '100';

            // remove tbody with elements
            let tbody = cloned.querySelector('tbody');
            cloned.removeChild(tbody);

            // add a "helper" class
            this.renderer.addClass(cloned, "cloned-header");

            // append cloned object to viewport
            cdkViewport.appendChild(cloned);
        }       
        // 
        //  walk through all <tr> with their <td> and store the max value in an array
        //
        let width = [];
        let td = this.el.nativeElement.querySelectorAll("td");
        width = new Array(td.length).fill(0);

        td.forEach((item,index) => {
            const w = item.getBoundingClientRect().width;
            width[index] = Math.max(w, width[index]);
        })  
        // 
        //  get <th> elements and apply the max-width values
        //
        let th = cdkViewport.querySelectorAll('.cloned-header th');
        th.forEach((item,index) => {
            this.renderer.setStyle(item, "min-width", width[index] + 'px')
        })
    }
}

Использование:

Использование немного изменилось, потому что это было необходимо для вызова директивы, когда обрабатывается *cdkVirtualFor.

<tr *cdkVirtualFor="let item of list" cdkFixedHeader>
    ...
</tr>

Вот и все! Не очень хорошо, но работает ...

85
задан Kara 14 April 2014 в 21:10
поделиться

6 ответов

I didn't mean to answer my own question but I just thought about running a sitemap generator. First one I found http://www.xml-sitemaps.com has a nice text output. Perfect for my needs.

59
ответ дан 24 November 2019 в 08:22
поделиться

do wget -r -l0 www.oldsite.com

Then just find www.oldsite.com would reveal all urls, I believe.

Alternatively, just serve that custom not-found page on every 404 request! То есть, если кто-то использовал неправильную ссылку, он получал бы страницу с сообщением, что страница не найдена, и с подсказками о содержании сайта.

43
ответ дан 24 November 2019 в 08:22
поделиться

Итак, в идеальном мире у вас была бы спецификация для всех страниц вашего сайта. У вас также будет тестовая инфраструктура, которая сможет проверять все ваши страницы

. Вы, вероятно, не в идеальном мире. Почему бы не сделать это ...?

  1. Создайте карту между колодцами известные старые URL-адреса и новые. Перенаправить, когда вы видите старый URL. Я бы подумал о том, чтобы представить "эта страница переехала, это новый URL XXX, вы будете перенаправлены shortly".

  2. If you have no mapping, present a "sorry - this page has moved. Here's a link to the home page" message and redirect them if you like.

  3. Log all redirects - especially the ones with no mapping. Over time, add mappings for pages that are important.

2
ответ дан 24 November 2019 в 08:22
поделиться

wget from a linux box might also be a good option as there are switches to spider and change it's output.

EDIT: wget is also available on Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

2
ответ дан 24 November 2019 в 08:22
поделиться

Я бы изучил любое количество онлайн-инструментов для создания карты сайта. Лично я использовал этот (на основе java) в прошлом, но если вы выполните поиск в Google по запросу «построитель карты сайта», я уверен, что вы найдете множество различных вариантов.

0
ответ дан 24 November 2019 в 08:22
поделиться

Напишите паука, который читает каждый HTML-код с диска и выводит каждый атрибут «href» элемента «a» (можно сделать с помощью парсера). Помните, какие ссылки принадлежат определенной странице (это обычная задача для структуры данных MultiMap). После этого вы можете создать файл сопоставления, который действует как ввод для обработчика 404.

1
ответ дан 24 November 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: