SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#26 21.08.2009 20:47:51

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

Ну, да, как-то так smile
Про preg_match:
if (preg_match('/Yandex|Googlebot|.../')) { ... }

Неактивен

 

#27 22.08.2009 02:53:32

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

На ночь глядя...
А если наоборот:


if (preg_match('/MSIE|Firefox|Opera/')) {mysql_query("INSERT INTO stat VALUES ('$id', CURRENT_DATE(), 1) ON DUPLICATE KEY UPDATE cnt = cnt + 1", $db);}
 

а?
Причём мне не нужно достижение 100% результата, важен индикатив.

Отредактированно Doxtor (22.08.2009 02:54:27)

Неактивен

 

#28 22.08.2009 16:10:54

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

Неактивен

 

#29 24.08.2009 13:03:54

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

Если Вы о том что их больше, то я в курсе... Я просто для примера привёл три основных.
Перечислить все или болшинство браузеров проще чем все пауков.

В принципе будет работать? Или в HTTP_USER_AGENT пауков тоже есть названия браузеров???

Неактивен

 

#30 24.08.2009 13:12:18

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

Например, вот такой:

http://help.yandex.ru/webmaster/?id=995296#995329
YandexBlog/0.99.101 (compatible; DOS3.30; Mozilla/5.0; B; robot) — робот поиска по блогам, индексирующий коментарии постов

Неактивен

 

#31 31.08.2009 17:39:04

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

Так не шло

$agent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/Yandex|Googlebot|.../')) { ... }

вылазило preg_match() expects at least 2 parameters, 1 given
Методом научного перебора получилось вот что:

$agent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/(Yandex|Googlebot|...)/',$agent)) { ... }

Я прав?Работать будет?

Если да, то пользуйся народ... может кому пригодиться.


$agent = $_SERVER['HTTP_USER_AGENT'];

if (preg_match('/(Yandex|Googlebot|Slurp|WebCrawler|WebCrawler|scooter|stack|aport|lycos|fast|rambler|AbachoBOT|accoona|ASPSeek
|CrocCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|MSRBOT|AltaVista|WebAlta|IDBot|eStyle|eStyle|Mail.Ru|Scrubby|YaDirectBot|Mediapartners-Google
|IsraBot|Orthogaffe|UbiCrawler|DOC|Zao|sitecheck.internetseer.com|Zealbot|MSIECrawler|SiteSnagger|WebStripper|WebCopier|Fetch
|Offline Explorer|Teleport|TeleportPro|WebZIP|linko|HTTrack|Microsoft.URL.Control|Xenu|larbin|libwww|ZyBORG|Download Ninja|wget|grub-client
|k2spider|NPBot|WebReaper|ia_archiver|grub-client|grub|looksmart|WebZip|larbin|b2w|psbot|Python-urllib|NetMechanic|URL_Spider_Pro|CherryPicker
|EmailCollector|EmailSiphon|WebBandit|EmailWolf|ExtractorPro|CopyRightCheck|Crescent|SiteSnagger|ProWebWalker|CheeseBot|LNSpiderguy|ia_archiver
|ia_archiver|Teleport|TeleportPro|MIIxpc|Telesoft|Website Quester|moget|WebZip|WebStripper|WebSauger|WebCopier|NetAnts|Mister PiX|WebAuto|TheNomad
|WWW-Collector-E|RMA|libWeb|asterias|httplib|turingos|spanner|InfoNaviRobot|Harvest|Bullseye|BullsEye|Crescent Internet ToolPak HTTP OLE Control
|CherryPickerSE|CherryPickerElite|WebBandit|NICErsPRO|DittoSpyder|Foobot|WebmasterWorldForumBot|SpankBot|BotALot
|lwp-trivial|lwp-trivial|BunnySlippers|URLy Warning|Wget|LinkWalker|cosmos|moget|hloader|humanlinks|LinkextractorPro|Mata Hari|LexiBot|Web Image Collector
|The Intraformant|True_Robot|BlowFish|JennyBot|MIIxpc|BuiltBotTough|ProPowerBot|BackDoorBot|toCrawl|UrlDispatcher|WebEnhancer|suzuran|VCI|Szukacz|QueryN|Openfind|Xenu
|Zeus|RepoMonkey|Openbot|URL Control|Webster|EroCrawler|LinkScan|Keyword Density|Kenjin Spider|Iron|Bookmark search tool|GetRight|FairAd|Gaisbot
|Aqua_Products|Radiation|AttackBot|Oracle Ultra Search|MSIECrawler|PerMan|searchpreview)/'
,$agent)) { $bot='1';}

else {mysql_query("INSERT INTO stat VALUES ('$id', CURRENT_DATE(), 1) ON DUPLICATE KEY UPDATE cnt = cnt + 1", $db);}

Отредактированно Doxtor (31.08.2009 18:05:05)

Неактивен

 

#32 31.08.2009 19:38:11

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

Очевидно, что все можно упростить. По крайней мере, выкинуть дубликаты и точные совпадения
(имеется в виду, что если есть совпадение на word, то на wordling тоже оно есть):

$ echo 'Yandex|Googlebot|Slurp|WebCrawler|WebCrawler|scooter|stack|aport|lycos|fast|rambler|AbachoBOT|accoona|ASPSeek|CrocCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|MSRBOT|AltaVista|WebAlta|IDBot|eStyle|eStyle|Mail.Ru|Scrubby|YaDirectBot|Mediapartners-Google|IsraBot|Orthogaffe|UbiCrawler|DOC|Zao|sitecheck.internetseer.com|Zealbot|MSIECrawler|SiteSnagger|WebStripper|WebCopier|Fetch|Offline Explorer|Teleport|TeleportPro|WebZIP|linko|HTTrack|Microsoft.URL.Control|Xenu|larbin|libwww|ZyBORG|Download Ninja|wget|grub-client|k2spider|NPBot|WebReaper|ia_archiver|grub-client|grub|looksmart|WebZip|larbin|b2w|psbot|Python-urllib|NetMechanic|URL_Spider_Pro|CherryPicker|EmailCollector|EmailSiphon|WebBandit|EmailWolf|ExtractorPro|CopyRightCheck|Crescent|SiteSnagger|ProWebWalker|CheeseBot|LNSpiderguy|ia_archiver|ia_archiver|Teleport|TeleportPro|MIIxpc|Telesoft|Website Quester|moget|WebZip|WebStripper|WebSauger|WebCopier|NetAnts|Mister PiX|WebAuto|TheNomad|WWW-Collector-E|RMA|libWeb|asterias|httplib|turingos|spanner|InfoNaviRobot|Harvest|Bullseye|BullsEye|Crescent Internet ToolPak HTTP OLE Control|CherryPickerSE|CherryPickerElite|WebBandit|NICErsPRO|DittoSpyder|Foobot|WebmasterWorldForumBot|SpankBot|BotALot|lwp-trivial|lwp-trivial|BunnySlippers|URLy Warning|Wget|LinkWalker|cosmos|moget|hloader|humanlinks|LinkextractorPro|Mata Hari|LexiBot|Web Image Collector|The Intraformant|True_Robot|BlowFish|JennyBot|MIIxpc|BuiltBotTough|ProPowerBot|BackDoorBot|toCrawl|UrlDispatcher|WebEnhancer|suzuran|VCI|Szukacz|QueryN|Openfind|Xenu|Zeus|RepoMonkey|Openbot|URL Control|Webster|EroCrawler|LinkScan|Keyword Density|Kenjin Spider|Iron|Bookmark search tool|GetRight|FairAd|Gaisbot|Aqua_Products|Radiation|AttackBot|Oracle Ultra Search|MSIECrawler|PerMan|searchpreview' | sed 's/|/\n/g' | sort | uniq -c
      1 AbachoBOT
      1 accoona
      1 AltaVista
      1 aport
      1 Aqua_Products
      1 ASPSeek
      1 asterias
      1 AttackBot
      1 b2w
      1 BackDoorBot
      1 BlowFish
      1 Bookmark search tool
      1 BotALot
      1 BuiltBotTough
      1 Bullseye
      1 BullsEye
      1 BunnySlippers
      1 CheeseBot
      1 CherryPicker
      1 CherryPickerElite
      1 CherryPickerSE
      1 CopyRightCheck
      1 cosmos
      1 Crescent
      1 Crescent Internet ToolPak HTTP OLE Control
      1 CrocCrawler
      1 DittoSpyder
      1 DOC
      1 Download Ninja
      1 Dumbot
      1 EmailCollector
      1 EmailSiphon
      1 EmailWolf
      1 EroCrawler
      2 eStyle
      1 ExtractorPro
      1 FairAd
      1 fast
      1 FAST-WebCrawler
      1 Fetch
      1 Foobot
      1 Gaisbot
      1 GeonaBot
      1 GetRight
      1 Gigabot
      1 Googlebot
      1 grub
      2 grub-client
      1 Harvest
      1 hloader
      1 httplib
      1 HTTrack
      1 humanlinks
      3 ia_archiver
      1 IDBot
      1 InfoNaviRobot
      1 Iron
      1 IsraBot
      1 JennyBot
      1 k2spider
      1 Kenjin Spider
      1 Keyword Density
      2 larbin
      1 LexiBot
      1 libWeb
      1 libwww
      1 LinkextractorPro
      1 linko
      1 LinkScan
      1 LinkWalker
      1 LNSpiderguy
      1 looksmart
      2 lwp-trivial
      1 lycos
      1 Mail.Ru
      1 Mata Hari
      1 Mediapartners-Google
      1 Microsoft.URL.Control
      2 MIIxpc
      1 Mister PiX
      2 moget
      2 MSIECrawler
      1 MSRBOT
      1 NetAnts
      1 NetMechanic
      1 NICErsPRO
      1 NPBot
      1 Offline Explorer
      1 Openbot
      1 Openfind
      1 Oracle Ultra Search
      1 Orthogaffe
      1 PerMan
      1 ProPowerBot
      1 ProWebWalker
      1 psbot
      1 Python-urllib
      1 QueryN
      1 Radiation
      1 rambler
      1 RepoMonkey
      1 RMA
      1 scooter
      1 Scrubby
      1 searchpreview
      1 sitecheck.internetseer.com
      2 SiteSnagger
      1 Slurp
      1 SpankBot
      1 spanner
      1 stack
      1 suzuran
      1 Szukacz
      2 Teleport
      2 TeleportPro
      1 Telesoft
      1 The Intraformant
      1 TheNomad
      1 toCrawl
      1 True_Robot
      1 turingos
      1 UbiCrawler
      1 URL Control
      1 UrlDispatcher
      1 URL_Spider_Pro
      1 URLy Warning
      1 VCI
      1 WebAlta
      1 WebAuto
      2 WebBandit
      2 WebCopier
      2 WebCrawler
      1 WebEnhancer
      1 Web Image Collector
      1 WebmasterWorldForumBot
      1 WebReaper
      1 WebSauger
      1 Website Quester
      1 Webster
      2 WebStripper
      2 WebZip
      1 WebZIP
      1 wget
      1 Wget
      1 WWW-Collector-E
      2 Xenu
      1 YaDirectBot
      1 Yandex
      1 Zao
      1 Zealbot
      1 Zeus
      1 ZyBORG

Неактивен

 

#33 31.08.2009 19:45:09

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

А вообще, роботы должны читать robots.txt, может быть, достаточно указать там? smile

Неактивен

 

#34 01.09.2009 17:16:15

Doxtor
Завсегдатай
Зарегистрирован: 06.08.2009
Сообщений: 61

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

Удалил двойников.
Меня в общем интересовал принцип работы... будет так отсеивать указаные боты или нет?
В robots.txt нельзя в этом случае, т.к. не все боты уважают robots.txt и мне нужно что-бы боты "обходили" только этот кусок кода.

Вот окончательный вариант:

$agent = $_SERVER['HTTP_USER_AGENT'];

if (preg_match('/(Yandex|Googlebot|Slurp|scooter|stack|aport|lycos|fast|rambler|AbachoBOT|accoona|ASPSeek
|CrocCrawler|Dumbot|FAST-WebCrawler|GeonaBot|Gigabot|MSRBOT|AltaVista|WebAlta|IDBot|eStyle|Mail.Ru|Scrubby|YaDirectBot|Mediapartners-Google
|IsraBot|Orthogaffe|UbiCrawler|DOC|Zao|sitecheck.internetseer.com|Zealbot|MSIECrawler|WebStripper|Fetch
|Offline Explorer|Teleport|WebZIP|linko|HTTrack|Microsoft.URL.Control|Xenu|larbin|libwww|ZyBORG|Download Ninja|wget
|k2spider|NPBot|WebReaper|grub|looksmart|b2w|psbot|Python-urllib|NetMechanic|URL_Spider_Pro|CherryPicker
|EmailCollector|EmailSiphon|EmailWolf|ExtractorPro|CopyRightCheck|Crescent|SiteSnagger|ProWebWalker|CheeseBot|LNSpiderguy
|ia_archiver|MIIxpc|Telesoft|Website Quester|moget|WebSauger|WebCopier|NetAnts|Mister PiX|WebAuto|TheNomad
|WWW-CollectorE|RMA|libWeb|asterias|httplib|turingos|spanner|InfoNaviRobot|Harvest|BullsEye|WebBandit|NICErsPRO|DittoSpyder
|Foobot|WebmasterWorldForumBot|SpankBot|BotALot
|lwp-trivial|BunnySlippers|URLy Warning|LinkWalker|cosmos|hloader|humanlinks|LinkextractorPro|Mata Hari|LexiBot|Web Image Collector
|The Intraformant|True_Robot|BlowFish|JennyBot|BuiltBotTough|ProPowerBot|BackDoorBot|toCrawl|UrlDispatcher|WebEnhancer|suzuran|VCI|Szukacz|QueryN|Openfind
|Zeus|RepoMonkey|Openbot|URL Control|Webster|EroCrawler|LinkScan|Keyword Density|Kenjin Spider|Iron|Bookmark search tool|GetRight|FairAd|Gaisbot
|Aqua_Products|Radiation|AttackBot|Oracle Ultra Search|PerMan|searchpreview)/'
,$agent)) { $bot='1';}

else {mysql_query("INSERT INTO stat VALUES ('$id', CURRENT_DATE(), 1) ON DUPLICATE KEY UPDATE cnt = cnt + 1", $db);}

Отредактированно Doxtor (01.09.2009 17:17:09)

Неактивен

 

#35 01.09.2009 19:03:08

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Сортировать артикулы по количеству кликов на них за последние 3 месяца

Угу, как-то так должно работать smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson