Ruby Regex: исключить aclk из Google URL - PullRequest
1 голос
/ 20 января 2011

У меня есть два URL (на самом деле больше, потому что у Google есть Карты, Новости, Изображения и т. Д.) Поиск в Google Organic:

http://www.google.nl/#hl=nl&biw=1920&bih=965&q=koffie&aq=f&aqi=g10&aql=&oq=&
fp=b8a3028139d33c34`

и поиск в Google Adwords:

http://www.google.nl/aclk?sa=L&ai=CZYun1fI3TY_hO8aMOrer6aQCmK2m2AGIpdyCFr_g_-RVE
AEoCFDytZmR-_____8BYJGkmoWEGMgBAakCkm-p2E6Ttj6qBBlP0O_GI1GZU09CYDd728FmO_QIDea76u
yT&num=1&sig=AGiWqtzxvt17KyOWqEkwJ7jVdanxR645tw&
adurl=http://ad-emea.doubleclick.net/clk%3B233218340%3B57152064%3Bv

Мне нужнорегулярное выражение для поиска google в URL и исключения части aclk?.Это используется только в Google Adwords.Регулярное выражение будет использоваться для фильтрации от реферера хоста и поиска только трафика Google Organic.

Сначала я попробовал это регулярное выражение:

www[.]google[.].{1,}client=|www[.]google[.].{1,}gs_rfai|www[.]google[.].{1,}&
prmd|news[.]google[.].{1,}nwshp?| video[.]google|www[.]google[.].{1,} imghp?|
www[.]google[.].{1,}imgres|www[.]google[.].{1,}search

Это захватило 50% трафика.В то время у нас не было запущено AdWords, поэтому он мог поймать весь трафик.Но это не так.

Мы хотим перехватить все Google (обычные) URL-адреса и исключить URL-адреса AdWords (с помощью aclk?).

1 Ответ

2 голосов
/ 21 января 2011

Если вам необходимо отделить доменное имя от остальной части URL, рассмотрите возможность использования анализатора URL. В стандартной библиотеке Руби есть такая.

Хорошо, вот код:

require "uri"
uri ="http://www.google.nl/aclk?sa=L&ai=CZYun1fI3TY_hO8aMOrer6aQCmK2m2AGIpdyCFr_g_-RVEAEoCFDytZmR-_____8BYJGkmoWEGMgBAakCkm-p2E6Ttj6qBBlP0O_GI1GZU09CYDd728FmO_QIDea76uyT&num=1&sig=AGiWqtzxvt17KyOWqEkwJ7jVdanxR645tw&adurl=http://ad-emea.doubleclick.net/clk%3B233218340%3B57152064%3Bv"

puts URI.split(uri).inspect

дает

["http", nil, "www.google.nl", nil, nil, "/aclk", nil, "sa=L&ai=CZYun1fI3TY_hO8aMOrer6aQCmK2m2AGIpdyCFr_g_-RVEAEoCFDytZmR-_____8BYJGkmoWEGMgBAakCkm-p2E
d728FmO_QIDea76uyT&num=1&sig=AGiWqtzxvt17KyOWqEkwJ7jVdanxR645tw&adurl=http://ad-emea.doubleclick.net/clk%3B233218340%3B57152064%3Bv", nil]

Возможно, вы захотите вызвать split для длинной строки (используйте «&», чтобы разделить их, а затем разделите их, используя «=»), если вам нужны параметры. Извините, если я не слишком точен здесь, я не полностью понял ваш вопрос.

rdoc для URI находится по адресу http://www.ruby -doc.org / stdlib / libdoc / uri / rdoc / . Нажмите на «URI», чтобы увидеть основную документацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...