PHP - Scrap

 
Vista:

Scrap

Publicado por Scrap a página web (27 intervenciones) el 15/05/2019 22:21:02
Hola amigos.

Quiero hacer algo de scrap a la página de Amazon, le pregunto si alguien conoce un buen tutorial y me puede explicar y guiarme para poder hacer esto la idea es obtener un ID del producto con ese mismo ingresar al link del detalle del producto y obtener info de los mismos...

Le agradezco si conocen de alguna solución que me pueda guiar.

Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Scrap

Publicado por Yamil Bracho (888 intervenciones) el 15/05/2019 22:32:57
Antes de ir a la plomeria, Amazon tiene un API con el cual puedes hacer cualquier tipo de conuslta a la informacion de los productos en sus paginas. Chequea https://ctrlq.org/code/19882-amazon-api-php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Scrap

Publicado por Diego Forero (27 intervenciones) el 15/05/2019 22:38:11
Hola Yamil, este post que me comentas debo adquirir como un especie de licencia para poder obtener la info??

De ser así, la idea es saltarme ese paso...

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Scrap

Publicado por Yamil Bracho (888 intervenciones) el 15/05/2019 23:02:05
jejeje, por algo tien tanto dinero..
Bueno, la otra alternativa es usar scrapping y algo de codigo. Hay muchas librerias clientes Http para PHP como Curl, Requests, httpFull, UniRest y Guzzle.
Una vez que tengas el HTML, lo que tienes que hacer es parsearlo para buscar lo que necesitas. Tambien hay bibliotecas para facilitarte este trabajo como php-html-parser
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Scrap

Publicado por Diego Forero (27 intervenciones) el 15/05/2019 23:22:43
Partamos de que no tengo ni idea de cómo hacer el tema del scrap, conoces algún bueno. Tutorial que me guíe o un block o tienes algo de código como para tener una idea. Porque para ser franco me siento algo perdido con el tema.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Scrap

Publicado por Mauro (1036 intervenciones) el 16/05/2019 15:21:52
Hace un tiempo tuve que hacer algo parecido y escribí este artículo, espero te ayude.

Este es un código que usé para realizar un scrapping sobre un listado de empresas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
 
require_once 'vendor/autoload.php';
use Goutte\Client;
use Symfony\Component\DomCrawler\Crawler;
 
$buscar = $argv[1] ?? 'rectifica';
$q = $argv[1] ?? 'rectificadoras';
 
$baseUrl = "http://www.guiadelaindustria.com/busqueda/directorio/results?q=$q&en=&sEcho=1&iColumns=12&sColumns=&iDisplayStart=0&iDisplayLength=500&mDataProp_0=0&mDataProp_1=1&mDataProp_2=2&mDataProp_3=3&mDataProp_4=4&mDataProp_5=5&mDataProp_6=6&mDataProp_7=7&mDataProp_8=8&mDataProp_9=9&mDataProp_10=10&mDataProp_11=11&iSortCol_0=0&sSortDir_0=asc&iSortingCols=1&bSortable_0=true&bSortable_1=true&bSortable_2=true&bSortable_3=true&bSortable_4=true&bSortable_5=true&bSortable_6=true&bSortable_7=true&bSortable_8=true&bSortable_9=true&bSortable_10=true&bSortable_11=true&productosSinFoto=false&ubicacion=&categoria=&nivelCategoria=&compraFilter=false&ventaFilter=true";
 
$results = file_get_contents($baseUrl);
 
$resultArray = json_decode($results, true);
 
foreach ( $resultArray['aaData'] as $result ) {
    if ( $email = getEmail($result[11]) ) {
        echo $result[1].','.$email.','.PHP_EOL;
    }
}
 
function getEmail( $idEmpresa )
{
    $url = "http://www.guiadelaindustria.com/empresa/dandliker-rectificaciones/$idEmpresa";
 
    $client = new Client();
    $crawler = $client->request('GET', $url);
 
    $e = $crawler
        ->filter('a.emailLink')
        ->each( function( $node ) {
     return $node->text();
        });
 
    return $e[0] ?? '';
}

Y te dejo el archivo composer.json también:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
  "name": "vendor_name/package_name",
  "description": "description_text",
  "minimum-stability": "stable",
  "license": "proprietary",
  "authors": [
    {
      "name": "author's name",
      "email": "email@example.com"
    }
  ],
  "require": {
    "fabpot/goutte": "v3.2.0"
  }
}

Por si necesitás info de composer: https://academy.leewayweb.com/que-es-composer/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Scrap

Publicado por Yamil Bracho (888 intervenciones) el 16/05/2019 15:40:54
Haces la conexion al website de amazon, con algunas de las bibliotecas que te mencione. te devuelve un string en formato HTML y entonces debes buscar dentro de ese HTML la informacion que necesitas.
Para ello puedes usar php-html-parser como te mencione. LO primordila aqui sera que URL de amazon te da la informacion que requieres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar