Сначала о том, что парсить. А будем парсить ключевики. Но не с гугля, нет. Поищем в интернете какой-нибудь сторонний сервис. Первое, что я нашла, это http://freekeywords.wordtracker.com/. Изучаем страницу. На ней форма. Заполняем, отправляем.
Экспериментируем с adult-фильтром.
Данные передаются GET-запросом, то есть вообще никаких премудростей — просто используем функцию получения контента из предыдущего поста, а потом регуляркой добываем нужные нам данные. Шаблон GET-запроса получаем, введя данные непосредственно в форму на сайте, установив нужное нам значение adult-фильтра и нажав на кнопку. У меня получился следующий шаблон (значение фильтра — по умолчанию):
$url = 'http://freekeywords.wordtracker.com/?seed='.$keyword.'&adult_filter=remove_offensive&suggest=Hit+Me';
(Вместо $keyword будем подставлять ключевик.)
Следует обратить внимание, что если в анализируемом нами ключевике несколько слов, разделенных пробелом, то пробел заменяется на "+".
Вот такой у нас получится скрипт (в результате все 100 ключевиков я просто выведу на экран, но можно их записать в файл и т.д.):
<?php
function get_web_page( $url )
{
$uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
$ch = curl_init( $url );
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // возвращает веб-страницу
curl_setopt($ch, CURLOPT_HEADER, 0); // не возвращает заголовки
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // переходит по редиректам
curl_setopt($ch, CURLOPT_ENCODING, ""); // обрабатывает все кодировки
curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // таймаут ответа
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // останавливаться после 10-ого редиректа
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
// ключевое слово
$keyword = 'finance';
// избавляемся от пробелов, если они есть
$keyword = strtr($keyword, ' ', '+');
$url = 'http://freekeywords.wordtracker.com/?seed='.$keyword.'&adult_filter=remove_offensive&suggest=Hit+Me';
$result = get_web_page( $url );
$err = 0;
if ( $result['errno'] != 0 )
{ //... ошибка: неправильный url, таймаут, зацикливание ... обработать по желанию
$err = 1;
}
if ( $result['http_code'] != 200 )
{ //... ошибка: нет страницы, нет прав ... обработать по желанию
$err = 1;
}
$page = $result['content'];
$a_pattern = '#<a\shref="(\?seed.*?)">(.*?)</a>#sm';
if (preg_match_all($a_pattern, $page,$a_matches, PREG_SET_ORDER))
{
foreach ($a_matches as $a)
echo $a[2].'<br>';
}
else echo 'Ничего не найдено!';
?>
Результат работы скрипта:
Если нам ключевиков надо не сто, а в разы больше, то придется модифицировать алгоритм для рекурсивного прохода по списку ключевиков, полученных на ранних этапах.
Зачем нам нужны эти ключевики? Применение можно найти. Об одном из способов применения расскажу в ближайшем посте.
Если вам понравилась статья, проголосуйте, пожалуйста, за нее на Sloger.net
Чтобы быть в курсе обновлений блога, можно подписаться на RSS.
А что за сервис вообще такой этот http://freekeywords.wordtracker.com/?
ОтветитьУдалитьКстати, окончательно подсел на твой блог, посты про cURL стали последней каплей, так что пиши ещё )
В каком смысле что за сервис? Заходил туда?) Там же все понятно: вводишь один ключевик — тебе предлагают из той же тематики 100 самых популярных запросов... а откуда я его взяла? первый попавшийся из поиска)) в интернете вообще много всего)))
ОтветитьУдалитьЗа внимание к блогу - спасибо :) Я стараюсь не забрасывать блог, но дел других тоже полно: надо же еще и жить на что-то))
я так понимаю скрипт уже нерабочий7
ОтветитьУдалитьNirvana, если честно - не знаю, вполне возможно :) Использовала пару раз, больше необходимости не было - с тех пор не проверяла...
ОтветитьУдалить