Описание:

Реализация RobotsTxt

Тип значения:

Строка

Диапазон значений:

Одно из множества {OnlyDisallowRobotsTxt, DummyRobotsTxt}

Требуется:

Всегда

Пример:

"DummyRobotsTxt"


RoutineThread

Описание:

Реализация RoutineThread

Тип значения:

Строка

Диапазон значений:

RT0

Требуется:

Всегда

Пример:

"RT0"


RoutineThreadSleepTime

Описание:

Время сна для реализации RoutineThread в случае отсутствия работы в миллисекундах

Тип значения:

Целое число

Диапазон значений:

[0, 2147483647]

Требуется:

Всегда

Пример:

1000


SaveDuplicates

Описание:

Хранить ли PageData, страницы соответствующие которым являются дублем страниц, встреченных ранее

Тип значения:

Логическое

Диапазон значений:

{0,1} или {false, true}

Требуется:

Всегда

Пример:

true

Комментарий

Истинное значение увеличивает количество потребляемой оперативной памяти, но исключает повторное скачивание страниц-дублей


StopFile

Описание:

Путь к файлу, появление которого останавливает приложение (работает только, если в ApplicationsFinishers указан StopFileAF)

Тип значения:

Строка

Диапазон значений:

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

Требуется:

Если в ApplicationsFinishers указан StopFileAF

Пример:

"Stop. txt"


TimeoutSeconds

Описание:

Таймаут в секундах по которому приложение заканчивает работу (работает только, если в ApplicationsFinishers указан TimeoutAF)

Тип значения:

Целое число

Диапазон значений:

[0, 2147483647]

Требуется:

Если в ApplicationsFinishers указан TimeoutAF

Пример:

34000


Такие параметры как DownloadingThreadPDChunkSizeMultiplier ParsingThreadPDChunkSize, ParsingThreadSleepTime, RoutineThreadTime созданы чтобы помочь сделать работу максимально эффективной. Это связано с блокировкой ресурсов в хранилищах DataManager.

НЕ нашли? Не то? Что вы ищете?

Приложение 5. Описание файла hosts. txt.

Данный файл должен представлять из себя набор строк следующего формата:

[#]{Протокол}://{Имя хоста};{Максимальное количество одновременных соединений};{Максимальный уровень};{Задержка краулинга}

Если строка начинается с #, то она игнорируется.

Протокол - значений из множества {http, https}.

Максимальное количество одновременных соединений - целое число в диапазоне [1, 2147483647]. Не рекомендуется выбирать большое число, зависит от производительности сайта. Минимальным рекомендуется выбирать 2, так как некоторые страницы могут отдаваться сервером довольно медленно, и тем временем, можно получить на параллельном соединении несколько других страниц.

Максимальный уровень - максимальный уровень сканирования включительно. В данном случае под уровнем понимается уровень страниц - минимальное количество переходов по гиперссылкам с главной страницы на текущую. Диапазон значений: [-2147483648, 2147483647]. Если задано отрицательное значение, то уровень не ограничен.

Задержка краулинга - время в миллисекундах, ожидаемое перед тем, как начать скачивание страницы. Данное время применяется для каждого соединения и не делится на их количество. Следует отметить, что даже в случае необходимости задержки краулинга максимальное количество соединений разумнее выбирать равное двум и просто увеличивать задержку для одного соединения в 2 раза.

Пример строки файла hosts. txt:

http://www. apmath. spbu. ru;4;-1;0

Приложение 6. Фрагменты исходного текста программы RCCrawler.

Полная версия исходного текста программы RCCrawler размещена по адресу http://www. apmath. spbu. ru/ru/staff/pechnikov_aa/files/programmnyy_kod_RCCrawler. docx.

RCCrawler. pro

QT += core network sql

QT -= gui

CONFIG += c++11

TARGET = RCCrawler

CONFIG += console

CONFIG -= app_bundle

TEMPLATE = app

PRECOMPILED_HEADER = precompiled_headers. h

SOURCES += main. cpp \

  objectcreator. cpp \

  application_managers/applicationmanager. cpp \

  application_finishers/applicationfinisher. cpp \

  data_managers/datamanager. cpp \

  data_structures/hostdata. cpp \

  data_structures/pagearc. cpp \

  threads/downloadingthread. cpp \

  threads/parsingthread. cpp \

  threads/rccbasethread. cpp \

  data_managers/bmicdm. cpp \

  data_structures/pagedata. cpp \

  application_finishers/workisdoneaf. cpp \

  application_managers/textfileam. cpp \

  result_unloaders/resultunloader. cpp \

  result_unloaders/gephisitegraphru. cpp \

  threads/dt0.cpp \

  threads/pt0.cpp \

  result_unloaders/testru. cpp \

  qreplytimeout. cpp \

  rccsettings. cpp \

  data_structures/pdlogitem. cpp \

  robots_txt/robotstxt. cpp \

  data_structures/robotstxtrule. cpp \

  robots_txt/onlydisallowrobotstxt. cpp \

  helpercreator. cpp \

  application_finishers/timeoutaf. cpp \

  robots_txt/dummyrobotstxt. cpp \

  delayedpdpass. cpp \

  data_structures/hostdownloaddata. cpp \

  application_finishers/stopfileaf. cpp \

  threads/routinethread. cpp \

  threads/rt0.cpp \

  data_structures/pdandpacreatedata. cpp \

  rccapplication. cpp

HEADERS += \

  includes. h \

  objectcreator. h \

  application_managers/applicationmanager. h \

  application_finishers/applicationfinisher. h \

  objects. h \

  rccconsts. h \

  data_managers/datamanager. h \

  data_structures/hostdata. h \

  data_structures/pagearc. h \

  data_structures/pagedata. h \

  threads/downloadingthread. h \

  threads/parsingthread. h \

  threads/rccbasethread. h \

  data_structures/pdstore. h \

  data_managers/bmicdm. h \

  baseobjects. h \

  data_structures/pastore. h \

  application_finishers/workisdoneaf. h \

  application_managers/textfileam. h \

  result_unloaders/resultunloader. h \

  result_unloaders/gephisitegraphru. h \

  threads/dt0.h \

  threads/pt0.h \

  result_unloaders/testru. h \

  qreplytimeout. h \

  rccsettings. h \

  data_structures/pdlogitem. h \

  robots_txt/robotstxt. h \

  data_structures/robotstxtrule. h \

  robots_txt/onlydisallowrobotstxt. h \

  helpers. h \

  helpercreator. h \

  application_finishers/timeoutaf. h \

  robots_txt/dummyrobotstxt. h \

  delayedpdpass. h \

  data_structures/hostdownloaddata. h \

  application_finishers/stopfileaf. h \

  threads/routinethread. h \

  threads/rt0.h \

  precompiled_headers. h \

  data_structures/pdandpacreatedata. h \

  rccapplication. h

RESOURCES += \

  resource. qrc

data_structures/pagedata. h

#ifndef PAGEDATA_H

#define PAGEDATA_H

#include "includes. h"

#include "hostdata. h"

struct PageData

{

  PageData();//не присваивает id

  PageData(const ulong &id, const QString& url, HostData *phD);

  PageData(const ulong &id, const QString& url, const QString& normalizedUrl, HostData *phD);

  QString toString() const;

  static ulong newIdUnsafe();

  static ulong newIdSafe();

  static uint hashContent(const QString& content);

  static ulong lastId;

  static QString normalizeUrl(const QString &urlStr);

  ulong id;

  HostData* phD;

  QString url;

  QString normalizedUrl;

  ulong idFrom;

  uint level;

  uint outDegree;

  bool blocked;

  bool downloaded;

  bool parsed;

  QString content;

  uint contentHash;

  uint errorCode;

  ulong replaceId;

  uint downloadAttempts;

  bool remove;

};

typedef QVector<PageData> PDContainer;

data_structures/pagearc. h

#ifndef PAGEARC_H

#define PAGEARC_H

#include "includes. h"

struct PageArc

{

  PageArc();

  PageArc(const ulong &from, const ulong &to);

  PageArc(const ulong &id, const ulong &from, const ulong &to);

  ulong id;

  ulong from;

  ulong to;

  static ulong newIdUnsafe();

  static ulong newIdSafe();

  static ulong lastId;

  QString toString() const;

};

#endif // PAGEARC_H

data_managers/datamanager. h

#ifndef DATAMANAGER_H

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11