Este artículo presenta principalmente cómo php rastrea los datos de productos de Tmall y Taobao, que tienen cierto valor de referencia. Los amigos interesados pueden consultarlo. Espero que gane mucho después de leer este artículo. Deje que el editor lleve a todos juntos Más información.
1. Ideas
Recientemente, hice un sitio web y lo usé para rastrear la información de productos de Tmall y Taobao desde el sitio web. Primero, miré la página web en el teléfono móvil para encontrar la reacción. Al rastrear la URL para obtener datos, no obtuvo información. como precio, inventario, etc. Después de un estudio cuidadoso, se encontró que se solicitó otra interfaz de forma asincrónica, pero la interfaz debe usarse para obtener datos, por lo que escribí un rastreador simple de la siguiente manera, se usa para rastrear el imagen de vista previa del producto y el precio, inventario, etc. de la primera categoría del producto.
dos, darse cuenta
el código se muestra a continuación:
function crawlUrl($url){ import('PhpQuery.Curl'); $curl=nuevo \Curl(); $resultado = $curl->read($url); $contenido = mb_convert_encoding($resultado['contenido'] , 'UTF-8', 'UTF-8,GBK,GB2312,BIG5' ); $myres=array(); if(strrpos($url,'taobao.com')!=false) { //Si la coincidencia está debajo del marco if(strpos($contenido,'Este bebé está listo para usar')!==falso){ return false; } preg_match("|itemId : '(.*)'|isU", $contenido, $coincidencia ); $ item_id=$match[1]; preg_match("|sellerId : '(.*)'|isU", $contenido, $match); $sellet_id=$match[1]; preg_match("|<title> (.* )</title>|isU", $contenido,$match); $title=$match[1]; //Información de inventario de precios $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, '/tupian/20230522/sib.htm $opt[CURLOPT_HEADER]=false; $opt[CURLOPT_CONNECTTIMEOUT]=15; $opt[CURLOPT_TIMEOUT]=300; $opt[CURLOPT_AUTOREFERER]=true; $opt [CURLOPT_USERAGENT]='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, como Gecko) Chrome/20.0.1132.47 Safari/536.11'; curl_setopt_array ($ch,$opt); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ; curl_setopt ($ch,CURLOPT_REFERER,$url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $out_put=curl_exec ($ch); curl_close ($ch); $res=str_replace('onSibRequestSuccess(',"", $out_put); $res=rtrim($res,');1'); $result=json_decode($res,verdadero); //查询出图片信息 ==falso){ devuelve falso; } $inicio=strpos($url,'&id='); $item_id=substr($url,$inicio+4,12); if(!is_numeric($item_id)){ $inicio=strpos($url,'?id='); $end=strpos($url,'&spm'); $item_id=substr($url,$start+4,$end-$start-4); } preg_match("|<título>(.*)</título>|isU",$contenido,$coincidencia); $título=$coincidencia[1]; $myurl='/tupian/20230522/initItemDetail.htm //价格库存信息 $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $myurl); $optar[CURLOPT_HEADER]=falso; $opt[CURLOPT_CONNECTTIMEOUT]=15; $optar[CURLOPT_TIMEOUT]=300; $optar[CURLOPT_AUTOREFERER]=verdadero; $opt[CURLOPT_USERAGENT]='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, como Gecko) Chrome/20.0.1132.47 Safari/536.11'; curl_setopt_array($ch,$opt); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch,CURLOPT_REFERER,$url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, falso); $out_put=curl_exec ($ch); curl_close ($ch); $res = mb_convert_encoding ($out_put, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5' ); $res=str_replace('setMdskip',"",$res); $res=str_replace('(',"",$res); $res=str_replace(')',"",$res); $resultado=json_decode($resultado, verdadero); $ahorak=""; $ahoratienda=""; foreach($resultado['defaultModel']['inventoryDO']['skuQuantity'] as $k=>$val){ $nowk=$k; $ahora=$valor; romper; } $myres['título']=str_replace('-tmall.com天猫','',$título); $myres['price']=$result['defaultModel']['itemPriceResultDO']['priceInfo'][$nowk]['price']; $myres['act_price']=isset($result['defaultModel']['itemPriceResultDO']['priceInfo'][$nowk]['suggestivePromotionList'])?$result['defaultModel']['itemPriceResultDO'] ['priceInfo'][$nowk]['suggestivePromotionList']:$result['defaultModel']['itemPriceResultDO']['priceInfo'][$nowk]; $myres['stock']=$result['defaultModel']['inventaryDO']['totalQuantity']?$result['defaultModel']['inventoryDO']['totalQuantity']: }
El código anterior usa la biblioteca de phpquery, pero es inútil. Simplemente use Curl directamente. Los datos rastreados específicos se pueden ver a través de la referencia. El método no distingue entre los enlaces Taobao y Tmall, pero la premisa es que debe ser una PC. -lado enlace Además, regular La escritura no está estandarizada, por lo que puede reescribir la regularidad para que coincida con los datos usted mismo.
Nombre de la interfaz encapsulada: item_get
Tabla de campos de respuesta: datos de la API de prueba
nombre | tipo | debe | valor de ejemplo | describir |
---|---|---|---|---|
artículo |
artículo[] | 1 | datos de detalles del bebe | |
num_id |
Empezando | 1 | 520813250866 | identificación del bebé |
título |
Cadena | 1 | Cuchillo plegable de madera de tres filos a través de la inspección de seguridad creativo mini llavero cuchillo sable cuchillo de bolsillo multifuncional portátil envío gratis | titulo de bebe |
desc_corto |
Cadena | 0 | Descripción del Producto | |
precio de promoción |
En t | 0 | Precio descontado | |
precio |
Flotar | 1 | 25.8 | precio |
precio total |
Flotar | 0 | 0 | |
precio_sugerente |
Flotar | 0 | 0 | |
precio_original |
Cadena | 0 | 25.80 | precio original |
mella |
Cadena | 0 | Posada feliz de las compras | Apodo del comerciante |
número |
En t | 0 | 3836 | en stock |
mi_num |
En t | 0 | 0 | cantidad mínima de compra |
detalle_url |
Cadena | 0 | http://item.taobao.com/item.htm?id=520813250866 | enlace de bebé |
pic_url |
Cadena | 1 | //gd2.alicdn.com/imgextra/i4/2596264565/TB2p30elFXXXXXQXpXXXXXXXXXX_!!2596264565.jpg | fotos de bebe |
marca |
Cadena | 0 | Sanbagui | nombre de la marca |
ID de marca |
En t | 0 | 8879363 | identificación de la marca |
rootCatId |
En t | 0 | 50013886 | ID de categoría superior |
cid |
En t | 1 | 50014822 | |
migas |
Mezcla | 0 | [] | Menú de Navegación |
tiempo_creado |
Cadena | 0 | ||
tiempo_modificado |
Cadena | 0 | ||
delist_time |
Cadena | 0 | ||
descripción |
Cadena | 0 | Detalles de producto | |
desc_img |
Mezcla | 0 | [] | Imagen de detalle del producto |
item_imgs |
Mezcla | 0 | item_imgs[] | imagen del producto |
Peso del artículo |
Cadena | 0 | ||
item_size |
Cadena | 0 | ||
ubicación |
Cadena | 0 | Lugar de envío | |
honorario expreso |
Flotar | 0 | 0.00 | Tarifas de mensajería |
ems_tarifa |
Flotar | 0 | tarifa de ccsme | |
post_fee |
Flotar | 0 | Costos de logística | |
embarcar hacia |
Cadena | 0 | envie a | |
tiene_descuento |
booleano | 0 | FALSO | ¿Hay un descuento? |
video |
video[] | 0 | vídeo del producto | |
es_virtual |
Cadena | 0 | ||
es_promoción |
booleano | 0 | FALSO | Ya sea para promover |
props_name |
Cadena | 0 | 1627207: 1347647754: Clasificación de color: rectangular con abrebotellas + tarjeta de navaja + cadena 1627207: 1347647753: Clasificación de color: ovalada con abrebotellas + tarjeta de navaja + cadena; | Nombre del atributo del producto. El formato es pid1:vid1:nombre1:valor1;pid1:vid2:nombre2:valor2. |
prop_imgs |
prop_imgs[] | 0 | Lista de imágenes de atributos del producto | |
alias_propiedad |
Cadena | 0 | 20509:9974422:36;1627207:28326:rojo;20509:9975710:38;1627207:28326:rojo;20509:9981357:40;1627207:28326:rojo | Alias de valor de atributo de ventas. El formato es pid1:vid1:alias1;pid1:vid2:alia2. |
accesorios |
Mezcla | 0 | [{ "nombre": "Origen","valor": "China" }] | Atributos de los productos básicos |
total_vendido |
En t | 0 | ||
skus |
skus[] | 0 | Lista de información sobre especificaciones de productos básicos | |
vendedor_id |
En t | 0 | 2844096782 | identificación del vendedor |
ventas |
En t | 0 | 138 | Ventas |
tienda_id |
En t | 0 | 151372205 | Identificación de la tienda |
lista de accesorios |
Mezcla | 0 | {20509:9974422: Tamaño:36} | Atributos de los productos básicos |
información_del_vendedor |
información_del_vendedor[] | 1 | información del vendedor | |
pequeño |
booleano | 0 | FALSO | Si es pequeño |
error |
Cadena | 0 | mensaje de error | |
advertencia |
Cadena | 0 | mensaje de advertencia | |
url_log |
Mezcla | 0 | [] | |
cuentafavorita |
En t | 0 | 0 | |
número de fans |
En t | 0 | 0 | |
método |
Cadena | 0 | item_tmall:pget_item | |
tipo_promo |
Cadena | 0 | ||
props_img |
Mezcla | 0 | 1627207:28326": "//img.alicdn.com/imgextra/i2/2844096782/O1CN01VrjpXt1zyCc9DvERE_!!2844096782.jpg | imagen de la propiedad |
tienda_item |
Mezcla | 0 | [] | |
relacionar_elementos |
Mezcla | 0 | [] |