Парсер Яндекс.Маркет

Писал сегодня парсер Яндекс.Маркет для одного из своих сайтов. Решил реализовать обычным способом через регэкспы HTML тэгов + Curl()

  1.  
  2. <?php
  3.  
  4. if (isset($title)){
  5. $title = $title;
  6. $title = str_replace(" ","%20",$title);
  7. }
  8.  
  9. function getPageContent($url, $agent = false)
  10. {
  11. $contentPage = '';
  12. $ch = curl_init();
  13. $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/assets/cookies/cookies.txt';
  14. curl_setopt($ch, CURLOPT_HEADER, 0);
  15. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  16. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  17. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
  18. curl_setopt($ch, CURLOPT_URL, $url);
  19. curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);
  20. curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);
  21. $contentPage = curl_exec($ch);
  22. curl_close($ch);
  23. return trim($contentPage);
  24. }
  25.  
  26. $url = "http://market.yandex.ru/search.xml?text=".$title;
  27. $content = getPageContent($url);
  28. if ($content){
  29. $start_str = "<h3 class=\"b-offers__title\"><a href=\"";
  30. $stop_str = "\" class=\"b-offers__name\"";
  31. $rule = "!".$start_str."(.*?)".$stop_str."!si";
  32. preg_match($rule,$content,$retContent);
  33. }
  34.  
  35. if ($retContent[1]){
  36. $content2 = getPageContent("http://market.yandex.ru".$retContent[1]);
  37. return $content2;
  38. }
  39. ?>
  40.  

Реализовал. Оно работает. Правда лицензию Яндекса нарушает. Но что поделать, они же свой XML еще не допилили до стостояния "взял и работает". Не под все задачи оно подходит.

Одна из задач осталась не реализованной. К сожалению или к счастью сервер с которого работает этот парсер находится в Германии. Соответственно по умолчанию он подставляет регион Бавария. А нужно Москва и московская область. Я попробовал через подстановку cookies, но вот как-то не вышло. Если кто знает решение - помогите пожалуйста.