타오바오 데이터를 호출하려면 타오바오에서 제공하는 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('/
![PHP는 Taobao_php 기술에 대한 단일 제품 정보 수집 및 캡처를 구현합니다.]()
]*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('/]*>([^/is', $text, $가격);
//유사하게 ID가 J_StrPrice인 $price[2] 태그 콘텐츠를 얻습니다. $price[0]는 전체 태그이고 $price[1]는 강력한 태그 이름입니다.
$price=floatval($price);//데이터베이스에 넣고 변수 유형을 변경해 보세요
D. 속성 가져오기:
이전에 얻은 내용은 하나의 태그에 모두 들어 있는데, 이는 정규식 하나만으로 얻을 수 있습니다. 단,
과 같이 구하고 싶다면.
…
특정 div에 n개의 알 수 없는 태그가 있습니다. 인터넷에서 검색한 후 가장 가까운 것은 "/([^]|(?R))*\1>/"는 재귀를 사용하여 태그 쌍을 가져오지만 특정 태그를 가져올 수 없으므로 class=를 쉽게 가져오고 싶습니다. "속성" div로는 할 수 없습니다. 그러나 타오바오 웹페이지에는 고유한 특성이 있습니다. 즉, 각 태그의 구조는 기본적으로 고정되어 있습니다...
...
뒤에 있는 태그는
또는
이므로 해결 방법을 사용하여 속성 태그의 콘텐츠를 얻을 수 있습니다.
코드 복사 코드는 다음과 같습니다.
preg_match('/]*>.*\1>/is', $text, $text0);
//이 일반 규칙은 전체 페이지의 마지막
태그까지
$text1=preg_replace("/ [^]*>.*\1>/ ","",$text0);
//
을
로 일치시킨 다음 이를 ""로 바꿉니다(즉, 일치하는 항목 삭제). 따라서 div 속성이 설명이 나오면 목표를 달성한 것입니다.
$attributes=preg_replace("/
[^]*>.*\1> /is","",$text1);
//속성 뒤에 상자 J_Tbox 태그가 있으면 위 단계를 사용하여 상자 J_Tbox 태그를 제거해야 합니다. 물론 속성의 div 뒤에 설명이 있으면 이 단계는 어떤 것과도 일치하지 않습니다. , 아무것도 하지 마세요.
E. 설명 가져오기:
위 방법을 사용하면 타오바오 페이지에 있는 어떤 태그든 쉽게 얻을 수 있다고 생각해야 하는데(예전에는 그렇게 생각했습니다), 이 방법을 사용하여 설명을 얻으면 얻는 내용은 "설명 로딩 중"이 됩니다. 예, 이 설명은 소스 코드에 없습니다. 페이지를 열고 많은 js를 로드하면 Taobao에서 아무데도 로드되지 않습니다.
좋아, 그러면 모방해서 js를 넣을 수도 있습니다. 설명을 로드하는 데 무엇이 유용한지 잘 모르시나요? 괜찮습니다. 완전히 로드되어야 합니다. 어떤 특정 div를 거기에 배치해야 할지 모르겠습니다. 소스 코드를 가져와서 일부 div를 삭제하고 단계별로 시도해 보세요. "
을 찾을 수 있습니다.
이러한 div는 설명을 로드하는 데 필요하므로 코드는 다음과 같습니다.
preg_match_all('/<script>]*>[^<]*</script>/is', $text, $content);//페이지 js 스크립트
$content=$content[0];
$description='
';
foreach ($content as &$v){$description.=iconv('GBK','UTF-8',$v);};
//이 $description을 페이지에 넣으면 설명이 자동으로 로드됩니다. 물론, 동일한 페이지에 여러 제품 설명이 있는 경우 하나의 설명만 로드됩니다.