> 백엔드 개발 > PHP 튜토리얼 > PHP는 Taobao_php 기술에 대한 단일 제품 정보 수집 및 캡처를 구현합니다.

PHP는 Taobao_php 기술에 대한 단일 제품 정보 수집 및 캡처를 구현합니다.

WBOY
풀어 주다: 2016-05-16 20:26:00
원래의
2174명이 탐색했습니다.

타오바오 데이터를 호출하려면 타오바오에서 제공하는 API를 사용할 수 있습니다. 자신의 웹사이트에서 타오바오 제품 이미지 이름과 기타 공개 정보만 호출해야 한다면 PHP의 file_get_contents 함수를 사용하세요.

사물:

file_get_contents(url) http://www.baidu.com 등의 URL을 기준으로 웹페이지 내용(소스코드)을 문자열(전체 문자열) 형태로 출력한 후 일반 문자열과 일치시키는 함수입니다. preg_match, preg_replace 등과 같은 표현식. 이 작업을 사용하여 URL의 특정 div, img 및 기타 정보를 얻을 수 있습니다. 물론 Taobao의 단일 제품 페이지 구조는 고정되어 있다는 전제가 있습니다. 예를 들어 500장의 사진 img에 있는 ID는 J_ImgBooth입니다.

구체적인 구현 방법: (500개의 사진, 이름, 가격, 속성 및 제품 설명 가져오기)

코드 복사 코드는 다음과 같습니다.

$text=file_get_contents("http://item.taobao.com/item.htm?id=2380347279"); //URL 주소의 페이지 내용을 $text에 저장합니다

A. 사진 500장 받기:

코드 복사 코드는 다음과 같습니다.

preg_match('/]*id="J_ImgBooth"[^r]*rc="([^"]*)"[^>]*>/', $text, $img );
//img 태그에서 ID가 J_ImgBooth인 img를 캡처하려면 일반 규칙을 사용합니다. $img[0]은 500개 사진의 img 태그이고 $img[1]은 500개 사진의 사진 주소입니다.

B. 이름 가져오기:

코드 복사 코드는 다음과 같습니다.
preg_match('/([^<>]*)/', $text, $title)
//텍스트의 제품 이름 태그에는 특별한 클래스나 ID가 없기 때문에 크롤링이 어렵기 때문에 일반적으로 제목에 있는 내용은 제품 이름입니다. (실제로는 약간의 차이가 있습니다), $title [0]전체 제목 태그$title[1]태그 내용;
$title=iconv('GBK','UTF-8',$title);
//웹사이트가 utf8로 인코딩된 경우 트랜스코딩해야 합니다(타오바오는 gbk로 인코딩됩니다)

C. 가격 확인:

코드 복사 코드는 다음과 같습니다.
preg_match('/<([a-z] )[^i]*id="J_StrPrice"[^>]*>([^<]*)/is', $text, $가격);
//유사하게 ID가 J_StrPrice인 $price[2] 태그 콘텐츠를 얻습니다. $price[0]는 전체 태그이고 $price[1]는 강력한 태그 이름입니다. $price=floatval($price);//데이터베이스에 넣고 변수 유형을 변경해 보세요


D. 속성 가져오기:

이전에 얻은 내용은 하나의 태그에 모두 들어 있는데, 이는 정규식 하나만으로 얻을 수 있습니다. 단,

과 같이 구하고 싶다면.

























특정 div에 n개의 알 수 없는 <> 태그가 있습니다. 인터넷에서 검색한 후 가장 가까운 것은 "/<([a-z] )[^>입니다. ;*>([^

코드 복사 코드는 다음과 같습니다.

preg_match('/<(div)[^c]*class="attributes"[^>]*>.*/is', $text, $text0);
//이 일반 규칙은 전체 페이지의 마지막
태그까지
$text1=preg_replace("/
[^<]*<(div)[^c]*id="description"[^>]*>.*/ ","",$text0);
//
로 일치시킨 다음 이를 ""로 바꿉니다(즉, 일치하는 항목 삭제). 따라서 div 속성이 설명이 나오면 목표를 달성한 것입니다.

$attributes=preg_replace("/
[^<]*<(div)[^c]*class="box J_TBox"[^>]*>.* /is","",$text1);
//속성 뒤에 상자 J_Tbox 태그가 있으면 위 단계를 사용하여 상자 J_Tbox 태그를 제거해야 합니다. 물론 속성의 div 뒤에 설명이 있으면 이 단계는 어떤 것과도 일치하지 않습니다. , 아무것도 하지 마세요.

E. 설명 가져오기:

위 방법을 사용하면 타오바오 페이지에 있는 어떤 태그든 쉽게 얻을 수 있다고 생각해야 하는데(예전에는 그렇게 생각했습니다), 이 방법을 사용하여 설명을 얻으면 얻는 내용은 "설명 로딩 중"이 됩니다. 예, 이 설명은 소스 코드에 없습니다. 페이지를 열고 많은 js를 로드하면 Taobao에서 아무데도 로드되지 않습니다.

좋아, 그러면 모방해서 js를 넣을 수도 있습니다. 설명을 로드하는 데 무엇이 유용한지 잘 모르시나요? 괜찮습니다. 완전히 로드되어야 합니다. 어떤 특정 div를 거기에 배치해야 할지 모르겠습니다. 소스 코드를 가져와서 일부 div를 삭제하고 단계별로 시도해 보세요. "

을 찾을 수 있습니다.

코드 복사 코드는 다음과 같습니다.



설명 로드 중



이러한 div는 설명을 로드하는 데 필요하므로 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

preg_match_all('/]*>[^<]*/is', $text, $content);//페이지 js 스크립트
$content=$content[0];
$description='


설명 로드 중

';
foreach ($content as &$v){$description.=iconv('GBK','UTF-8',$v);};
//이 $description을 페이지에 넣으면 설명이 자동으로 로드됩니다. 물론, 동일한 페이지에 여러 제품 설명이 있는 경우 하나의 설명만 로드됩니다.
관련 라벨:
원천:php.cn
이전 기사:ECShop_php 인스턴스에 최신 댓글 추가 다음 기사:PHP 시뮬레이션 login_php 기술 구현 방법 분석
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
관련 주제
더>
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿