Задать вопрос

Как решить проблему с парсингом в php скрипте?

Доброго время суток, уже неделю как мучаюсь, скрипт работает только через прокси.
А прокси каждый 5 минут перестают работать самом скрипте, с чем связано не известно.
Прощу помочь.

lic function Grab(){
            $proxy_host = ''; // Прокси в формате ip:port
            $proxy_auth = ''; // Логин с паролем в формате login:parol
            
			$agent = 'Mozilla/5.0 (Linux; Android 4.0.4; HUAWEI U9508 Build/HuaweiU9508) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'; 
            $ch = curl_init($this->url);
			curl_setopt($ch, CURLOPT_USERAGENT, $agent);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_REFERER, 'https://google.com/');
            curl_setopt($ch, CURLOPT_PROXY, $proxy_host);
            curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_auth);
			curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

            $this->page = curl_exec($ch);
            $error = curl_error($ch);
            curl_close($ch);

            if ($error)
                die("Failed to grab olx page: " . $error);

            if (!$this->page)
                die("Failed to grab olx page.");
			
			$this->data["item"]["script_order"] = $this->FastCut($this->page, '<script type="text/javascript" src="https://static-olxeu.akamaized.net/static/olxua/packed/', "</script>");
			$this->data["item"]["script"] = $this->FastCut($this->page, '<!-- TRACKING CONTRIB -->', "<!-- TRACKING CONTRIB -->");
			$this->data["item"]["header"] = $this->FastCut($this->page, "<head>", "</head>");
            $this->data["page_title"] = $this->FastCut($this->page, "<title>", "</title>");
			$this->data["item"]["vetka"] = $this->FastCut($this->page, '<div class="rel breadcrumbbox">', '</div>');
			$this->data["item"]["price"] = $this->FastCut($this->page, '<strong class="xxxx-large not-arranged">', '</strong>');
			$this->data["item"]["price2"] = $this->FastCut($this->page, '<strong class="xxxx-large margintop7 block not-arranged">', '</strong>');
			$this->data["item"]["price3"] = $this->FastCut($this->page, '<strong class="xxxx-large not-arranged">', '</strong>');
			$this->data["item"]["map"] = $this->FastCut($this->page, '<div class="offer-user__location">', '</div>');
			$this->data["item"]["city"] = $this->FastCut($this->page, '<span class="block normal brkword">', '</span>');
			$this->data["item"]["dateshop"] = $this->FastCut($this->page, '<span class="block normal margintop5">', '</span>');
			$this->data["item"]["nameshop"] = $this->FastCut($this->page, '<span class="block brkword xx-large">', '</span>');
			$this->data["item"]["bigtitle"] = $this->FastCut($this->page, '<div class="pding5 clr">', '</div>');
			$this->data["item"]["more"] = $this->FastCut($this->page, '<span class="block">', '</span>');
			$this->data["item"]["user"] = $this->FastCut($this->page, '<div class="offer-user__details ">', '</div>');
			$this->data["item"]["or"] = $this->FastCut($this->page, '<div class="flagged-offers">', '</div>');
			$this->data["item"]["titlebox"] = $this->FastCut($this->page, '<h1>', '</h1>');
			$this->data["item"]["titlebox_detalis"] = $this->FastCut($this->page, '<div class="offer-titlebox__details">', '</div>');
			$this->data["item"]["title_offer"] = $this->FastCut($this->page, '<div class="offer-titlebox__buttons">', '</div>');
			$this->data["item"]["title_info"] = $this->FastCut($this->page, '<div class="clr lheight20 large" id="textContent">', '</div>');
			$this->data["item"]["img"] = $this->FastCut($this->page, '<div class="tcenter img-item">', '</div>');
			$this->data["item"]["views"] = $this->FastCut($this->page, '<div class="pdingtop10">', '</div>');
			$this->data["item"]["photo"] = $this->FastCut($this->page, '<div class="photosbar">', '</div>');
			$this->data["item"]["photo_opener"] = $this->FastCut($this->page, '<div id="photo-gallery-opener" class="photo-handler rel inlblk">', '</div>');


            return $this->data;
        }

        private function ToLinesArray($data){
            return explode("\n", $data);
        }

        private function FastCut($data, $from, $to){
            return explode($to, explode($from, $data)[1])[0];
        }
    }
  • Вопрос задан
  • 958 просмотров
Подписаться 2 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 2
@Flexxi Автор вопроса
Нету решение?
Ответ написан
Комментировать
@Dr10s
Как определили что они перестают работать? Может Вас просто банить сервер на который вы обращаетесь?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы