How to edit list of detected browsers, bots etc.

Z tego artykułu dowiesz się dodać nowe pozycje do list wykrywanych przeglądarek, systemów operacyjnych, robotów i serwisów wyszukiwarek, a także poznasz budowę pozostałych pomocniczych plików konfiguracyjnych.

^ Wprowadzenie

W obecnej wersji edycja plików konfiguracyjnych używanych przy zbieraniu danych (i nie tylko) jest możliwie uproszczona, przez zastosowanie formatu INI. Pliki reguł wykrywania znajdują się w oddzielnych plikach w katalogu share/data/. W tym katalogu znajdują się także inne pliki pomocnicze, np. definicjami języków i krajów czy kodami logów.

Dodając nową pozycję do pliku przeglądarek, systemów lub robotów sieciowych lub kraj do listy należy dodać adekwatną ikonkę do odpowiedniego folderu w katalogu share/icons/. W przypadku braku unikalnej ikonki, zostanie użyty obrazek NA, pochodzący z motywu.

Do edycji tych plików możesz wykorzystać wtyczkę Editor (domyślnie wyłączona), lecz wymaga to nadania uprawnień do zapisu i odczytu.

^ Budowa

Lista plików:

  • share/
    • data/
      • browsers.ini [reguły wykrywania przeglądarek]
      • continents.ini [nazwy kontynentów]
      • countries.ini [lista krajów]
      • country-to-continent.ini [identyfikatory kontynentów dla danego kraju]
      • languages.ini [definicje języków]
      • language-to-country.ini [identyfikatory krajów dla wybranych języków]
      • log-codes.ini [kody logów]
      • oses.ini [reguły wykrywania systemów operacyjnych]
      • regions.ini [nazwy regionów krajów]
      • regions-corrections.ini [tabela korekt identyfikatorów regionów]
      • robots.ini [reguły wykrywania robotów]
      • websearchers.ini [reguły wykrywania wyszukiwarek]

Pliki posiadają zbliżoną budowę, można wyróżnić dwa typy, z sekcjami oraz bez. Poniżej przedstawione są szczegóły struktury wybranych plików.

^ browsers.ini

Fragment:

1
2
3
4
5
6
7
8
9
10
11
12
[NetSurf]
rules[] = "NetSurf/([d.]+)"
[OffByOne]
[OmniWeb]
rules[] = "omniweb/[ a-z]?([d.]+)"
[OpenWave]
rules[] = "UP.(?:Browser)?[ /]([w.]+)"
[Opera Mini]
icon = "opera"
rules[] = "Opera Mini[ /]([d.]+)"
[Opera]
rules[] = "Opera[ /]([d.]+)"

W pliku tym sekcje zawierają identyfikator przeglądarki oraz reguły wykrywania i pobierania wersji (wyrażenie regularne). W przypadku braku reguł nazwa jest wyszukiwania w ciągu identyfikacji, bez zwracania uwagi na wielkość znaków. Dodatkowo możemy określić nazwę ikony (icon).

Istotna jest kolejność pozycji w tablicy, gdyż od niej zależy poprawność wykrycia przeglądarki (np. przeglądarki oparte o Firefox powinny się znajdować na liście przed nim, itd.).

^ oses.ini

Fragment:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[Windows.NT]
icon = "windows-old"
rules[] = "win[dows ]*nt"
[Windows.CE]
icon = "windows-old"
rules[] = "win[dows ]*ce"
[Windows.Media Center]
icon = "windows"
rules[] = "media center pc[ /][d.]+"
[AIX]
rules[] = "-aix[d.]+"
rules[] = "[ ;(]aix"
[Amiga]
[Atari]
rules[] = "atari[ /]([w.]+)"
[BeOS]
[Darwin]
[mobile.Siemens]
rules[] = "sie-([w+-.]+)?/"
[mobile.SonyEricsson]
rules[] = "sonyericsson[ ]?([w+-.]+)"
[mobile]
rules[] = "midp"

Sekcja zawiera nazwę systemu, dodatkowo możemy zasygnalizować, że chodzi nam o konkretną jego wersję (podając ją po znaku .), wtedy reguły (rules - wyrażenia regularne) nie zwracają jej. Można także wskazać ikonę (icon).

Część sekcji zawiera klucz mobile używany do identyfikacji urządzeń przenośnych.

^ robots.ini

Fragment:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Alexa]
rules[] = "ia_archiver"
[Altavista]
rules[] = "Scooter[ /-]*[a-z]*[d.]+"
rules[] = "AltaVista"
[Amazon]
rules[] = "(aranhabot|amzn_assoc)"
rules[] = "NutchEC2Test"
[AOLserver]
[Google Sitemaps]
icon = "google"
rules[] = "GSiteCrawler"
rules[] = "Googl(e|ebot)-Sitemaps"
[?]
rules[] = "(robot|spider|crawler)"

Plik ten używa sekcji (nazwa robota) oraz reguły wykrywania w formie wyrażenie regularnego (tablica rules). W przypadku braku reguł wyszukiwana jest w ciągu nazwa z sekcji.

Ostatni wpis (klucz ?) służy do prób wyłapywania robotów nie wymienionych na liście. Dodatkowo możemy określić nazwę ikony (icon).

^ websearchers.ini

Fragment:

1
2
3
4
5
6
google. = "q"
yahoo. = "p"
search.msn.com = "q"
search.live.com = "q"
ask.com = "q"
szukaj.onet.pl = "qt"

Tablica zapisana w tym pliku składa się z klucza, fragment nazwy hostu, który musi się pojawić w nagłówku zawierającym stronę odsyłającą (źródło), a wartością jest klucz zapytania, który zawiera ciąg wpisany przez użytkownika do wyszukiwarki (używany do pobrania słów kluczowych).

^ Zakończenie

Mam nadzieję, że ten artykuł, pomimo pewnych zawiłości, będzie chociaż trochę pomocny i rozwieje chociaż część wątpliwości ;-). Jeśli masz jakieś pytania lub propozycje dotyczące tych plików konfiguracyjnych, to pisz na forum.

Ostatnia modyfikacja: 2008-02-15 22:12:17 CET

Everything should be made as simple as possible, but not simpler.

Albert Einstein