Перейти к содержимому

Фото
- - - - -

PHP


  • Вы не можете создать новую тему
  • Please log in to reply
21 ответов в этой теме

#1 Cepera

Cepera
  • Пользователь
  • 277 сообщений
  • Откуда:Таллинн, ТТУ

Отправлено 22 Октябрь 2008 - 21:35

$search=file_get_contents("http://www.google.com/search?q=".$word."&num=100");
Надо получить наиболее встречаемое слово из соседних к искомому (т.е. к $word)
preg_match наверн надо пользовать и все это в класс. Ну чета мне не осилить.
Хелп плззззз :rolleyes:

Сообщение изменено: Cepera (20 Декабрь 2008 - 01:09 )

  • 0

#2 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 23 Октябрь 2008 - 14:42

Cepera, точнее опиши задачу и желательно дай ссылку на реальный поисковый запрос и напиши точно результат, который хочешь получить
  • 0

#3 Cepera

Cepera
  • Пользователь
  • 277 сообщений
  • Откуда:Таллинн, ТТУ

Отправлено 23 Октябрь 2008 - 17:32

допустим у меня есть форма с 1им полем. вписываваю например слово "CAR". и тогда получаю переменную с текстом страницы http://www.google.co...h?q=CAR&num=100 (надо именно 100 результатов). далее нужно получить все соседние слова к слову car. например "My Car, Find" - слова My и Find, и так со всеми. затем из полученных найти то, которое повторялось больше всего и вывести его на экран))))) со словом car это будет наверн либо used, либо new :wacko:
  • 0

#4 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 25 Октябрь 2008 - 12:25

Не знаю, успел ты придумать регулярку или нет. Распишу ход действий, которые необходимо совершить:

1) Скачать страницу с гугла
2) Вырезать из неё все html теги, вырезать все символы, которые не могут быть частью слова. Желательно выделить область с результатами поиска, чтобы исключить нежелательные области страницы.
3) Выполнить регулярку
4) Подсчитать частоту вхождения результатов

$word = 'CAR';
$search=file_get_contents("http://www.google.com/search?q=".$word."&num=100");
$search = preg_replace( '#[\W\s]#', ' ', $search );
$search = preg_replace( '#\s\w\s#', ' ', $search );
$search = preg_replace( '#[\s]+#', ' ', $search );

preg_match_all( '#(\w+)\s+?' . $word . '\s+?(\w+)#is', $search, $matches );

$result = array_count_values( array_merge( $matches[1], $matches[2] ) );
asort( $result );

echo '<pre>';
print_r( $result );

	[UK] => 3
	[online] => 4
	[Rent] => 4
	[Find] => 4
	[at] => 4
	[com] => 4
	[buying] => 5
	[for] => 5
	[Prices] => 5
	[Cars] => 6
	[rental] => 7
	[www] => 7
	[Reviews] => 7
	[New] => 7
	[your] => 7
	[new] => 9
	[Rental] => 10
	[prices] => 10
	[Used] => 11
	[and] => 12
	[reviews] => 19
	[used] => 19


P.S. код не претендует на совершенство, но думаю, справляется с поставленной задачей. Частовстречаемые слова (and, or и т.п.) я бы исключил из страницы.
  • 0

#5 Vladson

Vladson

    XTGamers.com

  • Постоялец
  • 1 921 сообщений
  • Откуда:Эстония, Таллинн

Отправлено 25 Октябрь 2008 - 12:44

код не претендует на совершенство

В разрезе данной задачи очень даже претендует (никто же не сказал что тебе надо супер-продукт писать который потом за 1000$ продавать будут) человек хотел "чтоб работало" и оно работает. Единственное замечание ИМХО надо бы проверять сработал ли file_get_contents чтоб если (мало ли что) не получилось "левого" результата

Сообщение изменено: Vladson (25 Октябрь 2008 - 12:44 )

  • 0
Один Владсон может за...ать всех, кроме себя самого. Два Владсона могли бы за...ать абсолютно кого угодно, но Владсон единственный и неповторимый. ©Vladson

Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih

Не вазелин, а бизнес-гель ©Avagraen

#6 Cepera

Cepera
  • Пользователь
  • 277 сообщений
  • Откуда:Таллинн, ТТУ

Отправлено 25 Октябрь 2008 - 15:13

Setor,
Спасибо. Именно то, что надо было. ;)

Vladson,
Ага, некоторы хостинги запрещают file_get_contents, ну это уже мелочи. Главное понял.
  • 0

#7 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 25 Октябрь 2008 - 21:06

Vladson, я для СЕО нужд писал парсер гуглёвской выдачи, за 4 месяца они один раз чуток сменили дизайн, пришлось слегка подправить, но сложного на их странице ничего нет :) Конечно, со временем замечаешь какие-то баги и фиксишь.

Вообще, в последнее время пришлось писать много различных парсеров, уже не одну собаку на этом съел. Недавно слил всю базу с 2х крупных автомобильных порталов, несколько гигабайт инфы. Интересовался недвижимостью в эстонии, пришлось написать парсер city24 и kv, чтобы в удобном виде смотреть новые объявления в RSS-ридере ;) Такую же феньку как-то давно для auto24 делал. Пора уже на этом начать зарабатывать :) Я смотрю, столько различных СЕОшных инструментов появляется: вбиваешь список кейвордов и скрипт из гугла выкачивает по ним тексты, картинки и генерит небольшой сайт-сателит :) Попав на такой сразу не поймёшь, что это подстава :)
  • 0

#8 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 26 Октябрь 2008 - 10:17

Надо юзать curl вместо file_get_contents
  • 0

#9 Vladson

Vladson

    XTGamers.com

  • Постоялец
  • 1 921 сообщений
  • Откуда:Эстония, Таллинн

Отправлено 26 Октябрь 2008 - 12:39

Надо юзать curl

Можно, но это вовсе не значит надо (микроскопом тоже можно гвозди забивать)
Всё зависит от поставленной задачи, в данном случае file_get_contents ничем не хуже.

Сообщение изменено: Vladson (26 Октябрь 2008 - 12:40 )

  • 0
Один Владсон может за...ать всех, кроме себя самого. Два Владсона могли бы за...ать абсолютно кого угодно, но Владсон единственный и неповторимый. ©Vladson

Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih

Не вазелин, а бизнес-гель ©Avagraen

#10 alx4ever

alx4ever
  • Пользователь
  • 169 сообщений
  • Откуда:Tallinn, Estonia

Отправлено 01 Ноябрь 2008 - 00:33

Надо юзать curl вместо file_get_contents


Почему CURL лучше?? Но мне так тоже кажется.. а всётаки хочется знать..
  • 0

Аjaxel CMS, Фреймворк тоже.


#11 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 01 Ноябрь 2008 - 10:43

Почему CURL лучше?? Но мне так тоже кажется.. а всётаки хочется знать..

А ты мануал открывал? CURL - это расширение PHP (модуль), который обладает большими возможностями. Если сравнить конкретно случай получения удалённой страницы - CURL может посылать POST запросы, указывать различные заголовки: например, cookies. Можно скачивать большие файлы и сохранять весь поток в файл (file_get_contents будет держать весь скачанный файл в памяти).

Что можно сказать в пользу file_get_contents - 1 строка против минимум ~5 для CURL, file_get_contents - это стандартная ф-ция, CURL может быть не установлен, но на file_get_contents кажется действует ini опция allow_url_fopen, которая может запретить открывать удалённые файлы.

Вообще, в гугле можно найти много инфы по этому вопросу, но я бы советовал начать с PHP мануала.
  • 0

#12 Vladson

Vladson

    XTGamers.com

  • Постоялец
  • 1 921 сообщений
  • Откуда:Эстония, Таллинн

Отправлено 01 Ноябрь 2008 - 11:56

Почему CURL лучше?

CURL он как базука, как долбанёт мало не покажется, но для охоты на комаров вполне хватит мухобойки.

Инструмент надо выбирать исходя из потребностей, а не из их "крутости"
  • 0
Один Владсон может за...ать всех, кроме себя самого. Два Владсона могли бы за...ать абсолютно кого угодно, но Владсон единственный и неповторимый. ©Vladson

Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih

Не вазелин, а бизнес-гель ©Avagraen

#13 Cryptoboy

Cryptoboy
  • Пользователь
  • 280 сообщений

Отправлено 01 Ноябрь 2008 - 23:45

Ну например конкретно на моем хостинге, файл гет контест не пашет .. поэтому curl
  • 0

#14 Vladson

Vladson

    XTGamers.com

  • Постоялец
  • 1 921 сообщений
  • Откуда:Эстония, Таллинн

Отправлено 02 Ноябрь 2008 - 09:09

конкретно на моем хостинге

Там есть curl но отрублен file_get_contents ?
(скажи что за хостинг, буду своим врагам его советовать)
  • 0
Один Владсон может за...ать всех, кроме себя самого. Два Владсона могли бы за...ать абсолютно кого угодно, но Владсон единственный и неповторимый. ©Vladson

Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih

Не вазелин, а бизнес-гель ©Avagraen

#15 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 02 Ноябрь 2008 - 20:32

Vladson, там наверное allow_url_fopen запрещён в целях безопасности.

На сегодняшний день могу сказать, что самый "правильный" хостинг в Эстонии у zone.ee, у больш-ва остальных, что я видел присутствуют проблемы. У зоны только один минус - очень жёсткая политика против htaccess, приходится через админку вносить некоторые директивы, например, для mod_rewrite
  • 0

#16 Vladson

Vladson

    XTGamers.com

  • Постоялец
  • 1 921 сообщений
  • Откуда:Эстония, Таллинн

Отправлено 02 Ноябрь 2008 - 21:47

запрещён в целях безопасности

Угу, а я в целях безопасности плюю через плечо и стучу по дереву, это помогает не меньше :D

хостинг в Эстонии

Звучит как "Институт ядерной физики в индийском племени мумба-юмба" :)
  • 0
Один Владсон может за...ать всех, кроме себя самого. Два Владсона могли бы за...ать абсолютно кого угодно, но Владсон единственный и неповторимый. ©Vladson

Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih

Не вазелин, а бизнес-гель ©Avagraen

#17 Cepera

Cepera
  • Пользователь
  • 277 сообщений
  • Откуда:Таллинн, ТТУ

Отправлено 04 Декабрь 2008 - 14:10

есть ли способ обойти htmlspecialchars()
прост. других вариантов нрту( , а очень хочется

новый топик решил не делать

Сообщение изменено: Cepera (04 Декабрь 2008 - 14:10 )

  • 0

#18 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 04 Декабрь 2008 - 14:12

Cepera, нет.

Есть сомнительный вариант с кодировкой UTF8 и китайскими иероглифами :)

Смотря что ты хочешь обойти...
  • 0

#19 Cepera

Cepera
  • Пользователь
  • 277 сообщений
  • Откуда:Таллинн, ТТУ

Отправлено 20 Декабрь 2008 - 01:18

нужно удалять с файла мертвые прокси.
как проверять на работоспособность?
и так чтоб быстро работал, что-то типо checker.freeproxy.ru/checker
  • 0

#20 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 20 Декабрь 2008 - 11:45

Cepera, Можно впринципе взять какую-то тестовую страницу, например google.com(хотя не важно) и через CURL вначале выставлять настройки прокси и затем делать коннект на сайт и смотреть что вернется.

Сообщение изменено: Otacon (20 Декабрь 2008 - 11:45 )

  • 0

#21 Cepera

Cepera
  • Пользователь
  • 277 сообщений
  • Откуда:Таллинн, ТТУ

Отправлено 20 Декабрь 2008 - 22:55

curl_setopt().. да вариант, но медленно.. наверно воспользуюсь готовым онлайн сервисом и буду вытаскивать результат от туда.)))
спасибо
  • 0

#22 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 21 Декабрь 2008 - 11:56

Cepera, бесплатные сервисы содержат полумёртвые списки проксей. Купи за 30 баксов мультипотоковый прокси чекер. Месяц назад мы уже обсуждали проверку проксей, там есть и ссылка.
  • 0