2014-04-09 1 views
1

최근 웹 스크 레이 핑 프로젝트에 simplehtmldom 파서를 사용하고 있으며이 프로젝트는 실제로 CodeIgniter와 가격 비교 웹 사이트 빌드를 구축하고 있습니다. 웹 사이트는 다른 쇼핑 웹 사이트에서 제품 이름, 설명 및 가격을 가져와야합니다. 여기 내 코드는 다음과 같습니다.여러 사이트에서 simplehtmldom을 사용하여 웹 스크래핑하기

$this->dom->load_file('http://www.site1.com'); 
$price1 = $this->dom->find("span[itemprop=price]"); 

$this->dom->load_file('http://www.site2.com'); 
$price2 = $this->dom->find("div.price"); 

$this->dom->load_file('http://www.site3.com'); 
$price3 = $this->dom->find("div.priceBold"); 

$this->dom->load_file('http://www.site4.com'); 
$price4 = $this->dom->find("span.fntBlack"); 

$this->dom->load_file('http://www.site5.com'); 
$price5 = $this->dom->find("div.price"); 

위의 코드는 결과를 화면에로드하는 데 약 15-20 초가 걸립니다. 사이트 하나만 사용하려고하면 2 초가 걸립니다. 이것은 simplehtmldom이 여러 도메인에서 작동하는 방식입니까? 아니면 최적화 할 방법이 있습니까?

답변

2

PHP 간단한 HTML DOM 파서는 일부 memory leak issue이 있으므로 새 페이지를로드하기 전에, 사용 이전 취소 :

$this->dom->clear(); 
unset($this->dom); 

이 후, 당신의 웹 사이트 중 하나를 아무 것도 변경하지 않는 걸리는 경우를 응답하는 데 많은 시간이 걸립니다 ... 범인을 찾기 위해 하나 하나를 확인해야합니다 xD

+0

당신이 맞습니다! yahoo, imdb 및 youtube와 같은 다른 인기있는 사이트를 확인할 때 콘텐츠로드 속도가 매우 빨라졌습니다 (약 3 초). 그래서, 스크랩에 사용하는 사이트의 문제점. – prajan55