дубли проектов, импорт URL в проект, ТОП анкоров, экспорт в MindMap, циклические ссылки

Всем привет! В этом новогоднем релизе SiteAnalyzer мы постарались добавить как можно больше ранее озвученных пожеланий пользователей, при этом было реализовано более 20 новых возможностей и улучшений, а также исправлена масса накопившихся багов.

В новой версии SiteAnalyzer 2.9 была добавлена возможность импорта списка URL в проект, появилась возможность создания дубликатов проектов, добавлен экспорт структуры сайта в MindMap, добавлен график ТОПа анкоров сайта, а также была проведена большая работа по исправлению накопившихся багов. Расскажем обо всем подробнее.

Основные изменения

1. Импорт URL

В новой версии SiteAnalyzer добавлена возможность импорта URL в активный проект используя буфер обмена, текстовый файл или файл Sitemap.xml.

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

Импорт URL в проект осуществляется через контекстное меню списка проектов, а также через контекстное меню списка URL – пункт «Добавить URL в проект».

При этом, при импорте:

  • Учитываются дубли URL (не добавляются URL, уже имеющиеся в базе).
  • Не добавляются URL с отличным от исходного доменом.

Сразу после импорта, URL автоматически отправляются на сканирование.

2. ТОП анкоров

Добавлен фильтр по ТОПу анкоров на панели «Custom Filters», а также график плотности ключевых слов.

Для анализа берутся все анкоры ссылок с сайта (внешние и внутренние), считается число повторений каждого анкора и отображается в таблице и на графике (на графике отображаются 30 первых анкоров).

Таким образом, теперь мы можем проанализировать, какие анкоры чаще всего встречаются на сайте, какие реже, а также увидеть распределение на графике плотность ключевых слов в гиперссылках.

3. Экспорт структуры в MindMap

Добавлена возможность экспорта структуры сайта в формат ментальных карт MindMap.

Ментальные карты (интеллект карты, MindMap) – это метод структуризации и визуализации концепций с использованием графической записи в виде диаграммы. Таким образом, ментальные карты помогают легко оперировать информацией, что делает их полезными для применения во многих областях жизни, в том числе и в SEO, в частности.

Применительно к SiteAnalyzer, экспорт структуры сайта в майндкарты позволяет визуализировать текущую структуру сайта в виде удобных ментальных карт с возможностью их дальнейшего редактирования в четырех самых популярных редакторах: MindManager, Xmind, Mindmeister и Coggle.

Методика экспорта структуры в MindManager:

  • При помощи вкладки «Структура» строим дерево страниц, затем экспортируем данные сайта в формат CSV при помощи кнопки «Экспорт структуры для MindManager».
  • Запускаем программу MindManager.
  • В ней через главное меню выбираем пункт Import -> Import using Excel Data Mapper.
  • В появившемся блоке справа жмем Next, в диалоге выбора файла выбираем только что экспортированный CSV.
  • Затем мы добавляем все недостающие колонки по числу колонок в экспортированном файле минус колонки с URL и Title страниц (для удобства можно использовать данный пресет).
  • Далее, для последнего блока URL добавляем подпункты с нашими колонками с URL и Title страниц, а также у первых пунктов мы в свойствах колонок выбираем скрытие пустых ячеек.
  • После нажатия на кнопку Apply мы видим получившуюся ментальную карту нашего сайта.

Экспорт структуры в Xmind, Mindmeister и Coggle происходит еще проще:

  • При помощи вкладки «Структура» строим дерево страниц, затем экспортируем данные сайта в текстовый формат при помощи кнопок «Экспорт структуры для [Xmind,Mindmeister,Coggle]».
  • Далее открываем один из редакторов (Xmind бесплатен, в Mindmeister и Coggle авторизация через аккаунт Google).
  • В Mindmeister мы импортируем наш текстовый файл через «Мои карты -> Импорт», в Coggle – путем перетаскивания того же файла на рабочий стол нового документа Coggle, а в Xmind мы импортируем файл формата Markdown (*.
    md).

Экспорт структуры сайта в Mindmeister

Экспорт структуры сайта в Coggle

Экспорт структуры сайта в Xmind

Таким образом, теперь буквально за пару минут можно получить структуру сайта в виде интеллект карт в удобном визуальном формате и без лишних манипуляций.

4. Дубликаты проектов

Добавлена возможность создания дублей проектов (дубликаты сайтов по разным URL).

Данное нововведение поможет изолировать объемы работы над крупными проектами, чтобы разделять большие проекты и работать с ними по частям.

Правила добавления дубликатов URL: если новый проект уже имеется в базе и добавляемый URL является внутренней страницей сайта, то в фильтр «Следование URL» автоматически добавляется правило типа https://domain.tld/folder/.* и сохраняется в базе.

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

5. Страницы-сироты (Orphan Pages)

Восстановлена работа фильтра по страницам-сиротам (Orphan Pages). Данный фильтр находится на вкладке «Статистика SEO».

Страницы-сироты – это страницы, на которые не стоят внутренние ссылки (страницы без входящих внутренних ссылок). Таким образом, такая «бесхозная» страница не может быть найдена через навигацию сайта ни пользователем, ни поисковой системой, а может быть найдена лишь через файл Sitemap.xml или ссылки с внешних ресурсов, что обесценивает данный тип страниц в глазах поисковых систем.

От подобных бесхозных страниц необходимо либо избавляться, либо ставить на них внутренние ссылки, чтобы поисковые боты могли переходить на них естественным путем, а не только через Sitemap.xml.

Применительно к SiteAnalyzer, подобные бесхозные страницы могут быть обнаружены при импорте URL в проект, либо при сканировании и импорте URL из Sitemap.xml.

6. Циклические ссылки

Добавлен новый фильтр, содержащий «циклические» ссылки (ссылки со страницы на саму себя). Это могут быть ссылки из логотипа, из меню, из хлебных крошек и т.п. Данный фильтр находится в разделе «Custom Filters».

Циклические ссылки не являются каким-то особо критичным недочетом на сайте, однако для целостности технической оптимизации сайта, у SEO-специалиста должно быть понимание, что те же ссылки из последнего элемента «хлебных крошек» или со ссылки номера активной страницы пагинации лучше убирать.

7. «Прокси» – время ответа

В разделе настроек «Прокси» добавлена колонка со временем ответа для каждого прокси в миллисекундах.

Это поможет пользователям оценить скорость работы каждого прокси и сразу удалять прокси, не удовлетворяющие по скорости (например, со временем ответа более 5 секунд). Время ответа для каждого прокси обновляется после каждой проверки его доступности.

Прочие изменения

  • Добавлен экспорт произвольно импортированного списка URL в режиме «проекта», а также парсинг вкладки h2-H6.
  • В лог программы добавлено информирование, если сайт запрещен к индексации через мета-тег «Robots» или через HTTP-заголовок «X-Robots-Tag».
  • Исправлен баг с редиректами, когда при сканировании страниц, отвечающих кодом 3xx, в столбце «Адрес перенаправления» было пусто.
  • Теперь настройки разделов «Юзер-агент», «Исключения URL» и «Следование URL» сохраняются отдельно для каждого проекта.
  • Модуль обновления программы теперь встроен в саму программу, за счет чего размер дистрибутива уменьшился на 2 Мб.
  • Добавлена возможность указания произвольных названий к HTTP заголовкам (параметры стали редактируемыми).
  • Теперь при возобновлении проекта из паузы % прогресса считается со значения на момент паузы, а не с 0%.
  • Добавлена возможность проверки индексации страниц для произвольно импортированного списка URL.
  • Исправлен баг «Access Violation», возникающий после удаления только что созданного проекта.
  • Исправлен баг, когда при экспорте кастом отчета в Excel дублировалась последняя строка.
  • Исправлено некорректное извлечение данных для произвольно импортированного списка URL.
  • Исправлен баг с пустыми анкорами ссылок и текстами ALT изображений на панели «Инфо».
  • Исправлено множество незначительных ошибок.

Подписывайтесь на наш канал в Телеграме! https://t.me/siteanalyzer

Голосуйте за нас на Product Hunt!


Новости прошлых версий:

  • Обзор SiteAnalyzer версии 2.8
  • Обзор SiteAnalyzer версии 2.7
  • Обзор SiteAnalyzer версии 2.6

python — ImportError: невозможно импортировать имя «url» из «django.conf.urls» после обновления до Django 4.0

спросил

Изменено 8 месяцев назад

Просмотрено 162к раз

После обновления до Django 4.0 я получаю следующую ошибку при запуске python manage. py runserver 9myapp/', включить('myapp.urls'), ]

  • python
  • django
  • django-urls
  • django-4.0

django.conf.urls.url() устарело добавлен в Django 3.0 и удален в Django 4.0+.

Самое простое решение — заменить url() на re_path() . re_path использует регулярные выражения, такие как url , поэтому вам нужно только обновить импорт и заменить url на re_path .

9myapp/', включить('myapp.urls'), ]

В качестве альтернативы вы можете переключиться на использование пути . path() не использует регулярные выражения, поэтому вам придется обновить шаблоны URL, если вы переключитесь на путь.

 из импорта django.urls включает, путь
из myapp.views импортировать домой
URL-шаблоны = [
    путь('', дом, имя='дом'),
    путь('myapp/', включить('myapp.urls'),
]
 

Если у вас есть большой проект с множеством шаблонов URL для обновления, вам может пригодиться библиотека django-upgrade для обновления ваших urls. py файлов.

6

Я думаю, что быстро решить эту проблему можно следующим образом;

Вы можете легко заменить

 из URL импорта django.conf.urls
 

на это:

 из django.urls импортировать re_path как URL
 

И оставьте остальную часть кода такой же, как раньше. (Спасибо @Alasdair)

2

См. в версии 9 джанго0079 4.0 не получится. Таким образом, при установке Django в вашей виртуальной среде выберите эту версию

PIP установить Django == 3.2.10

Это определенно решит вашу ошибку и в Основных URLS.PY Сделайте это:

от django.conf. URL-адрес импорта URL-адресов

из пути импорта django.urls, включая

2

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.

URL | Контроль версий данных · DVC

Отслеживание файла или каталога, найденного во внешнем расположении ( s3:// , /local/path , д.), и загрузите его в локальный проект или сделайте копию в удаленном хранилище.

Краткий обзор

 использование: dvc import-url [-h] [-q | -v]
           [--to-remote] [-r <имя>] [--no-exec | --нет загрузки]
           [-j <число>] [-f] [--с учетом версии]
           URL [исходящий]
позиционные аргументы:
  URL-адрес (см. поддерживаемые URL-адреса в описании).
  out Путь назначения для размещения файлов. 

Описание

В некоторых случаях удобно добавить файл данных или каталог из внешнего место в рабочее пространство (или на dvc remote ), чтобы его можно было обновить позже, если/когда внешний источник данных изменится. Примеры сценариев:

  • Удаленная система может время от времени создавать файлы данных, которые используются в других проекты.
  • Пакетный процесс регулярно обновляет файл данных для импорта.
  • Общий набор данных в облачном хранилище, который управляется и обновляется за пределами DVC.

Обратите внимание, что dvc get-url соответствует первому шагу, который выполняет эта команда. (просто скачайте файл или каталог).

dvc import-url помогает вам создать такую ​​зависимость от внешних данных без необходимость вручную копировать файлы из поддерживаемых местоположений (перечисленных ниже), что может потребоваться установка отдельного инструмента для каждого типа.

Если вы не хотите сохранять целевые данные в вашей локальной системе, вы все равно можете создать файл импорта .dvc при передаче файла или каталога непосредственно в удаленное хранилище с помощью параметра --to-remote . См. Пример переноса на удаленное хранилище для подробнее.

Аргумент url указывает внешнее расположение импортируемых данных. Импортированные данные кэшируются и связываются (или копируются) с текущим рабочий каталог с исходным именем файла, например. data.txt (или в папку поставляется с из ).

См. dvc list-url для просмотра внешнего расположения файлов и каталоги для загрузки.

Импорт .dvc Файл создается в том же месте, например. данные.txt.dvc – аналогично использованию dvc добавить после загрузки данных. Это позволяет обновить импорт позже, если изменился источник данных (см. dvc update ).

Файлы .dvc поддерживают ссылки на данные во внешнем расположении, см. Внешние зависимости. В таком файле import .dvc в поле deps хранится внешний URL-адрес, а Поле outs содержит соответствующий локальный путь в Рабочее пространство. Он записывает достаточно метаданных об импортированных данных, чтобы включить DVC, эффективно определяя, устарела ли локальная копия.

Обратите внимание, что dvc repro не проверяет и не обновляет файлы импорта .dvc , используйте dvc update , чтобы обновить импорт из источника данных.

DVC поддерживает несколько типов внешних местоположений (протоколов):

9022 3
Тип Описание url пример формата
s3 Amazon S3 s3://ведро /данные
azure Хранилище больших двоичных объектов Microsoft Azure azure://container/data
gs 9 0228 Облачное хранилище Google gs://bucket/data
ssh SSH-сервер ssh://[email protected]/path/to/data
hdfs HDFS в файл* hdfs://user@example. ком/путь/к/data.csv
http HTTP к файлу с ETag * https://example.com/path/to/data.csv
webdav WebDav в файл* webdavs://example.com/endpoint/path
webhdfs REST API HDFS* webhdfs:// [email protected]/path/to/data.csv
местный Локальный путь /path/to/local/data

* Примечания относительно удаленных местоположений:

  • HDFS, HTTP, WebDav и WebHDFS не поддерживают загрузку всего каталоги, только отдельные файлы.

  • В случае HTTP, ETag это необходимо отслеживать, изменился ли указанный URL.

DVC также поддерживает сбор информации об облачных версиях из определенных облачных поставщики хранилища. Когда --version-aware опция предоставляется или когда url Аргумент включает поддерживаемый идентификатор облачной версии, DVC импортирует указанная версия.

Тип Описание Версия url пример формата
s3 9 0012 Amazon S3 s3://bucket/data?versionId=L4kqtJlcpXroDTDmpUMLUo
Azure Хранилище BLOB-объектов Microsoft Azure azure://container/data?versionid=YYYY-MM-DDThh:mm:ss
gs Google Cloud Storage gs://bucket/data#1360887697105000

Другой способ понять команду dvc import-url — это ярлык для создание этапа конвейера с внешним зависимость.

Это обсуждается в Внешние зависимости документации, где демонстрируется альтернатива для каждой из этих схем.

Вместо:

 $ dvc import-url https://data.dvc.org/get-started/data.xml data.xml 

Можно использовать dvc stage add , например (HTTP URL ):

 $ dvc stage add -n download_data \
                -d https://data.dvc.org/get-started/data.xml \
                -о данные.xml \
                wget https://data.dvc.org/get-started/data.xml -O data.xml
$ dvc repro 

dvc import-url генерирует import .dvc файл , а этап dvc добавить выдает штатный этап в dvc.yaml .

Опции

  • --no-exec — создать файл импорта .dvc без доступа к URL (предполагается что источник данных действителен). Это полезно, если вам нужно определить проект импортируется быстро, а данные импортируются позже (используйте dvc update для завершения операция(и)).

  • --нет загрузки - создать файл импорта . dvc , включая хеш-значения для внешней зависимости, но без загрузки связанных данных. Этот полезно, если вам нужно отслеживать изменения в удаленных данных без использования локального хранилища космос (пока). Данные можно загрузить позже с помощью dvc pull , но это завершится ошибкой, если URL-адрес больше не соответствует хеш-значениям. Хэши файлов могут быть обновляется с помощью dvc update --no-download .

  • --на удаленный - импортировать цель, но ни перемещать ее в рабочую область, ни кешировать это. Перенесите его прямо в вместо этого удаленное хранилище (по умолчанию, если не указано иное с помощью -r ). Используйте dvc pull для локального получения данных.

  • -r , --remote - имя dvc remote (можно использовать только с --to-remote ).

  • -j <номер> , --jobs <номер> - уровень параллелизма для DVC для загрузки данных из источника. Значение по умолчанию — 4 * cpu_count() . Использование большего количества рабочих мест может ускорить операцию.

-f , --force - при использовании --out для указания локального целевого файла или каталог, операция завершится ошибкой, если эти пути уже существуют. этот флаг будет принудительно выполнить операцию, в результате которой локальные файлы/каталоги будут перезаписаны командой.

  • --с учетом версии — захватить информацию об облачной версии текущего версию при импорте файла. ДВК всегда извлекать версионные данные из источника и не будет отправлять дополнительную копию на удаленный хранилище.

  • -h , --help - распечатывает сообщение об использовании/справке и завершает работу.

  • -q , --quiet - ничего не писать в стандартный вывод. Выйти с 0, если нет возникают проблемы, иначе 1.

  • -v , --verbose — отображает подробную информацию о трассировке.

Примеры

Чтобы проиллюстрировать эти примеры, мы будем использовать объяснение проекта. в разделе «Начало работы».

Нажмите и разверните, чтобы настроить пример

Начните с клонирования нашего примера репозитория, если у вас его еще нет. Затем перейдите в репо и проверить 3-конфиг-удаленный тег, раздел Начало работы :

 $ git clone https://github.com/iterative/example-get-started
$ cd пример-начало работы
$ git checkout 3-config-remote 

Пример: отслеживание файла из Интернета

Расширенная альтернатива вводной части «Основы управления версиями» Get Started должен использовать dvc import-url :

 $ dvc import-url https://data.dvc.org/get-started/data.xml \
                 данные/данные.xml
Импорт «https://data.dvc.org/get-started/data.xml» -> «data/data.xml»
. ..
Чтобы отслеживать изменения с помощью git, запустите:
git add data.xml.dvc data/.gitignore 

Давайте посмотрим на изменения в data.xml.dvc :

 +md5: c4d6740ee09950bb532d418b8ae0b52e
+заморожено: правда
+депс:
+- etag: '"f432e270cd634c51296ecd2bc2f5e752-5"'
+ путь: https://data.dvc.org/get-started/data.xml
 ауты:
 - md5: a304afb96060aad268345e10355
   путь: data.xml
   cache: true 

Поле etag в файле .dvc содержит ETag, записанный из HTTP-запроса. Если импортированный файл изменится онлайн, его ETag будет другим. Эти метаданные позволяет DVC определить, нужно ли загружать его снова.

См. файлы .dvc для более подробной информации о вышеуказанном формате.

Вы можете выйти из каталога example-get-started/ и удалить его после пробуем этот пример (особенно если пробуем следующий).

Пример: обнаружение изменений во внешнем файле

Что делать, если импортированный файл регулярно обновляется в источнике? Цели проекта может включать повторное создание некоторых результатов на основе обновленного источника данных. Воспроизведение конвейера может быть запущено на основе изменена внешняя зависимость.

Давайте снова воспользуемся проектом «Начало работы», имитируя обновленный внешний источник данных. (Не забудьте подготовить рабочее пространство, т.к. объясняется в примерах)

Чтобы проиллюстрировать этот сценарий, давайте воспользуемся каталогом локальной файловой системы, внешним по отношению к рабочей области (в реальной жизни файл данных может находиться на удаленном сервере). Запустите следующие команды:

 $ mkdir /tmp/dvc-import-url-example
$ cd /tmp/dvc-импорт-url-пример/
$ wget https://data.dvc.org/get-started/data.xml
$ cd - # вернуться к проекту 

В производственной системе у вас может быть процесс обновления файлов данных. Это не то, что у нас здесь, поэтому в этом случае мы создадим «хранилище данных», где мы можем отредактируйте файл данных.

 $ dvc-импорт-url /tmp/dvc-import-url-example/data.xml data/data.xml
Импорт '../../../tmp/dvc-import-url-example/data. xml' -> 'data/data.xml' 

Проверить data.xml.dvc :

 md5: fceb2bc076fabe99b483729c3ea2a8 97
заморожено: правда
депс:
  - md5: a304afb96060aad268345e10355
    путь: /tmp/dvc-import-url-example/data.xml
ауты:
  - md5: a304afb96060aad268345e10355
    путь: data.xml 

Файл .dvc почти такой же, как в предыдущем примере. Разница в том, что зависимость ( deps ) теперь ссылается на локальный файл в хранилище данных каталог, который мы создали ранее. (Его путь содержит URL-адрес хранилища данных.) И вместо etag у нас md5 хэш-значение. Мы сделали это так, что легко отредактируйте файл данных.

Давайте теперь вручную воспроизведем секцию обработки данных Начало работы . Загрузите архив с исходным кодом примера и разархивируйте его:

 $ wget https://code.dvc.org/get-started/code.zip
$ распаковать код.zip
$ rm -f code.zip 
Нажмите и разверните, чтобы настроить среду

Давайте установим требования. Но прежде чем мы это сделаем, мы настоятельно рекомендуем создание виртуальная среда:

 $ python3 -m venv .env
$ источник .env/bin/активировать
$ pip install -r src/requirements.txt 
 $ dvc stage add -n prepare \
                -d src/prepare.py -d данные/data.xml \
                -o данные/подготовлено \
                python src/prepare.py данные/data.xml
$ dvc репродукция
Запуск команды:
python src/prepare.py данные/data.xml
... 
 $ дерево
.
├── README.md
├── данные
│ ├── data.xml
│ ├── data.xml.dvc
│ └── подготовлено
│ ├── test.tsv
│ └── train.tsv
├── dvc.lock
├── dvc.yaml
├── params.yaml
└── источник
    ├── оценка.py
    ├── featurization.py
    ├── prepare.py
    ├── требования.txt
    └── train.py 

На данный момент DVC считает, что все обновлено:

 $ dvc status
Данные и пайплайны актуальны. 

В каталоге хранилища данных отредактируйте data.xml . Неважно, что вы измените, до тех пор, пока он остается действительным XML-файлом, потому что любое изменение приведет к другой хэш файла зависимостей ( md5 ) в файле импорта . dvc . Как только мы это сделаем, мы можем запустить dvc update , чтобы убедиться, что импорт обновлен:

 $ dvc update data.xml.dvc
Импорт '.../tmp/dvc-import-url-example/data.xml' -> 'data/data.xml' 

DVC замечает, что внешний источник данных изменился, и обновляет файл .dvc (воспроизводит). В этом случае также необходимо запустить dvc repro , чтобы остальные результаты конвейера также регенерируются:

 $ репродукция dvc
Запуск этапа «подготовка» с помощью команды:
python src/prepare.py data/data.xml 

Пример: перенос в удаленное хранилище

Иногда в локальной среде недостаточно места для импорта большого набор данных, но вы все равно хотите отслеживать его в проекте, чтобы его можно было вытащил позже.

Пока вы настроили dvc remote , который может обрабатывать данные, это может быть достигается с помощью флага --to-remote . Он создает импорт .dvc файл без загрузка чего-либо, вместо этого передача цели непосредственно в удаленное хранилище.

Давайте импортируем файл data.xml через HTTP прямо «на удаленку»:

 $ dvc import-url https://data.dvc.org/get-started/data.xml data.xml \
                 --to-remote
...
$ лс
data.xml.dvc 

Поскольку в рабочей области создается файл .dvc , всякий раз, когда кто-либо хочет фактически загрузить данные, которые они могут использовать dvc pull :

 $ dvc pull data.xml.dvc
Данные.xml
1 файл добавлен 

Используйте dvc update --to-remote , чтобы обновить импорт в удаленном хранилище, ничего не скачивая.

Пример: отслеживание идентификаторов облачных версий

Если для вашего пути к облачному хранилищу уже включено управление версиями, DVC может использовать облако идентификаторы версий для управления данными. Давайте импортируем версионные данные из S3:

 $ dvc import-url --version-aware s3://mybucket/data
Импорт 's3://mybucket/data' -> 'data' 

Проверьте data.