Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - lemos.ema

#1
Hola que tal ?
se que es un curso de Udemy , no te pido que lo actualices pero podrías subir el curso completo ? porque los links son iguales (los primeros dos ) y el ultimo solo tiene la sesión 3 pero el ultimo vídeo ni anda.
Es un tema que se busca basante en la actualidad y estaria bueno tenerlo completo
#2
Hola Comunidad hermosa ! :D
tengo un problema a la hora de utilizar PySpark. Entiendo en concepto de que trabaja en clusteres y que puede hacer peticiones a base de datos tipo Hadoop. Estas acciones funcionan en paralelo y esta es la ventaja de trabajar con Frameworks como este. Creo que mucha gente tiene bastantes dudas de como utilizarlo ya que en Internet no hay mucha información clara y hay mucha gente preguntando (por lo que creo que este post le va a ser de gran ayuda a muchos)

Pero a la hora de introducir todos esos conceptos en la practica estoy medio perdido. Yo uso Python por ende les dejo el codigo en Python:

Código: python
from pyspark.sql.types import StructType, StructField, FloatType, BooleanType
from pyspark.sql.types import DoubleType, IntegerType, StringType
import pyspark

from pyspark import SQLContext



conf = pyspark.SparkConf()

sc = pyspark.SparkContext.getOrCreate(conf=conf)
sqlcontext = SQLContext(sc)

schema = StructType([
    StructField("sales", IntegerType(),True),
    StructField("sales person", StringType(),True)
])

data = ([(10, 'Walker'),
        ( 20, 'Stepher')
        ])
       
df=sqlcontext.createDataFrame(data,schema=schema)

df.show()


Corre lo mas bien pero me surgen muchas preguntas en cuanto al código.

1)-¿Dónde elijo la cantidad de nodos que usaré? ¿Y dónde se ejecutan, en esta misma computadora que tiene particiones de memoria? Porque teóricamente los RDD tienen que trabajar en Paralelo no ? (esa es la gracia de Spark)

¿Dónde elijo la cantidad de memoria que usaré? Y si quiero usar memoria y disco a la vez?
3)Si quiero acceder a una base de datos de Hadoop, ¿cómo puedo hacerlo?

Podrían contestar con un código y un paréntesis al lado explicando las leneas y para que funcionan. Saludos y muchas Gracias
#3
sabes que lo estaba probando , y pensé que funcionaba lo de False a True... pero siempre me lo guarda como valor "1" no importa si es verdadero o falso. Llegué bastante lejos jejeje pero no encuentro info sobre el tema, intente buscar y no molestar estos días que paso , pero no hay caso .
como veras en esta parte
Código: text
$esteesvideo = ($json2['graphql']['shortcode_media']['is_video'] === "False") ? "a" : "b";

hasta intente cambiar false por a y true por b a ver si lo aguardaba así pero no hay caso a todas las variables las guarda como 1 en links.txt
de hecho lo intente también de la otra forma con la condición If pero tampoco .
por otro lado quiero contar los edges de $json2['graphql']['shortcode_media']['edge_sidecar_to_children']['edges'] y tampoco , siempre me toma como "1". Cual puede ser el problema?
La verdad que a veces esto desmotiva cuando uno no encuentra la solución y se traba  :(

Código: text
<?php
ini_set('max_execution_time', 0);
$baseUrl = "https://www.instagram.com/explore/tags/comida/?__a=1";
$url = $baseUrl;
$baseUrl2 = "https://www.instagram.com/p/";
$url2 = $baseUrl2;

while(1) {
    $file = fopen("links.txt","a");
    $json = (object) json_decode(file_get_contents($url));
    foreach($json->{'graphql'}->hashtag->edge_hashtag_to_media->edges as $object_return){
        var_dump($object_return->node->shortcode);
        echo "{$object_return->node->shortcode}\n";
        fwrite($file, $object_return->node->shortcode);
        fwrite($file,"\n");
        $url2 = $baseUrl2;  //Aqui se resetea la variable
        $url2 .= ($object_return->node->shortcode);
        $url2 .= "/?__a=1";
        echo "{$url2}\n";
        $json2 = json_decode(file_get_contents($url2), true);   //En lugar de obtener un objeto se obtiene un array asociativo
       
        //medidas de la foto o video
        $height = $json2['graphql']['shortcode_media']['dimensions']['height']."\n";
        echo "{$height}\n";
        $width = $json2['graphql']['shortcode_media']['dimensions']['width']."\n";
        echo "{$width}\n";
        //texto recordar que es una lista
        $texto = $json2['graphql']['shortcode_media']['edge_media_to_caption']['edges']['0']['node']['text']."\n";
        echo "{$texto}\n";
        //cantidad de comentarios
        $numeroComentarios = $json2['graphql']['shortcode_media']['edge_media_to_parent_comment']['count']."\n";
        echo "{$numeroComentarios}\n";

        //comentarios desabilitados
        $desabilitadosComentarios = ($json2['graphql']['shortcode_media']['comments_disabled'] === "False") ? false : true;
        echo "{$desabilitadosComentarios}\n";
        $commenting_disabled_for_viewer = ($json2['graphql']['shortcode_media']['commenting_disabled_for_viewer'] === "False") ? false : true;
        echo "{$commenting_disabled_for_viewer}\n";


        //Hora y dia
        $HorayDia = $json2['graphql']['shortcode_media']['taken_at_timestamp']."\n";
        echo "{$HorayDia}\n";
        //Cantidad de likes
        $numLikes = $json2['graphql']['shortcode_media']['edge_media_preview_like']['count']."\n";
        echo "{$numLikes}\n";
        //Location
        $locationid = $json2['graphql']['shortcode_media']['location']['id']."\n";
        echo "{$locationid}\n";
        $locationName = $json2['graphql']['shortcode_media']['location']['name']."\n";
        echo "{$locationName}\n";
        $locationAdress = $json2['graphql']['shortcode_media']['location']['address_json']."\n";
        echo "{$locationAdress}\n";

        //propietario
        $propietarioID = $json2['graphql']['shortcode_media']['owner']['id']."\n";
        echo "{$propietarioID}\n";
        $propietarioVerificado = ($json2['graphql']['shortcode_media']['owner']['is_verified'] === "False") ? false : true;
        echo "{$propietarioVerificado}\n";
        $propietarioUsername = $json2['graphql']['shortcode_media']['owner']['username']."\n";
        echo "{$propietarioUsername}\n";
        $full_name = $json2['graphql']['shortcode_media']['owner']['full_name']."\n";
        echo "{$full_name}\n";
        $propietarioVerificado = ($json2['graphql']['shortcode_media']['owner']['is_private'] === "False") ? false : true;
        echo "{$propietarioPrivado}\n";
        $propietarioPosteos = $json2['graphql']['shortcode_media']['owner']['edge_owner_to_timeline_media']['count']."\n";
        echo "{$propietarioPosteos}\n";
        $propietarioCantSeguidores = $json2['graphql']['shortcode_media']['owner']['edge_followed_by']['count']."\n";
        echo "{$propietarioCantSeguidores}\n";
        //es un Anuncio?
        $esanuncio = ($json2['graphql']['shortcode_media']['is_ad'] === "False") ? false : true;
        echo "{$propietarioID}\n";
        $is_video = ($json2['graphql']['shortcode_media']['is_video'] === "False") ? false : true;

        $esteesvideo = ($json2['graphql']['shortcode_media']['is_video'] === "False") ? "a" : "b";
        $imagenContenido = $json2['graphql']['shortcode_media']['accessibility_caption']."\n";

        $carrusel = $json2['graphql']['shortcode_media']['edge_sidecar_to_children']['edges']."\n";
        $cantidadFotosCarrusel = count($carrusel);
        $cantidadFotosCarrusel2 = array_count_values($carrusel);


        //si es video
        if($json2['graphql']['shortcode_media']['is_video'] === "False"){
       
            //contenido de la imagen (solo foto normal, carrusel no tiene)
           

         } else {
       
            //es un video o un IGT?
            $tipodeVideo = $json2['graphql']['shortcode_media']['product_type']."\n";
            echo "{$tipodeVideo}\n";
            //titulo
            $tituloVideo = $json2['graphql']['shortcode_media']['title']."\n";
            echo "{$tituloVideo}\n";
            //duracion
            $DuracionVideo = $json2['graphql']['shortcode_media']['video_duration']."\n";
            echo "{$DuracionVideo}\n";
            //cantidad de visitas
            $visitas = $json2['graphql']['shortcode_media']['video_view_count']."\n";
            echo "{$visitas}\n";
         }



       
       
       
        //Ahora full_name y followed_by contienen los datos deseados
        fwrite($file, "altura: ".$height);
        fwrite($file,"\n");
        fwrite($file, "ancho: ".$width);
        fwrite($file,"\n");
        fwrite($file, "texto: ".$texto);
        fwrite($file,"\n");
        fwrite($file, "fueEditado: ".$IsEdited);
        fwrite($file,"\n");
        fwrite($file, "NumdeComentarios: ".$numeroComentarios);
        fwrite($file,"\n");
        fwrite($file, "desabilitadosComentarios: ".$desabilitadosComentarios);
        fwrite($file,"\n");
        fwrite($file, "commenting_disabled_for_viewer: ".$commenting_disabled_for_viewer);
        fwrite($file,"\n");
        fwrite($file, "HorayDia: ".$HorayDia);
        fwrite($file,"\n");
        fwrite($file, "NumeroDeLikes: ".$numLikes);
        fwrite($file,"\n");

        fwrite($file, "locationid: ".$locationid);
        fwrite($file,"\n");
        fwrite($file, "locationName: ".$locationName);
        fwrite($file,"\n");
        fwrite($file, "locationAdress: ".$locationAdress);
        fwrite($file,"\n");

        fwrite($file, "propietarioID: ".$propietarioID);
        fwrite($file,"\n");
        fwrite($file, "propietarioVerificado: ".$propietarioVerificado);
        fwrite($file,"\n");
        fwrite($file, "propietarioUsername: ".$propietarioUsername);
        fwrite($file,"\n");
        fwrite($file, "full_name: ".$full_name);
        fwrite($file,"\n");
        fwrite($file, "propietarioPrivado: ".$propietarioPrivado);
        fwrite($file,"\n");
        fwrite($file, "propietarioPosteos: ".$propietarioPosteos);
        fwrite($file,"\n");
        fwrite($file, "propietarioCantSeguidores: ".$propietarioCantSeguidores);
        fwrite($file,"\n");
        fwrite($file, "esanuncio: ".$esanuncio);
        fwrite($file,"\n");

        //aca se divide entre videos o no
        fwrite($file, "is_video: ".$is_video);
        fwrite($file,"\n");
        fwrite($file, "esteesvideo: ".$esteesvideo);
        fwrite($file,"\n");

        //primero las fotos y los carruseles
        fwrite($file, "imagenContenido: ".$imagenContenido);
        fwrite($file,"\n");
        fwrite($file, "carrusel: ". $carrusel);
        fwrite($file,"\n");
        fwrite($file, "cantidadFotosCarrusel: ". $cantidadFotosCarrusel);
        fwrite($file,"\n");
        fwrite($file, "cantidadFotosCarrusel2: ". $cantidadFotosCarrusel2);
        fwrite($file,"\n");

        //ahora los videos
        fwrite($file, "tipodeVideo: ".$tipodeVideo);
        fwrite($file,"\n");
        fwrite($file, "tituloVideo: ".$tituloVideo);
        fwrite($file,"\n");
        fwrite($file, "DuracionVideo: ".$DuracionVideo);
        fwrite($file,"\n");
        fwrite($file, "visitas: ".$visitas);
        fwrite($file,"\n");


    }

    fclose($file);
    // Deben modificar la variable $URL y acceder correctamente a ella
    if(!$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->has_next_page) break;
    $url = $baseUrl.'&max_id='.$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->end_cursor;
}
#4
veo que me falta mucho para llegar a tu nivel  :( jajaja pero le pongo ganas y eso es lo que importa !
#5
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Si la verdad me vino genial , lo unico que no encuentro y lo estoy buscando es ... como almacenar un Booleano
Osea por ejemplo en $json2['graphql']['shortcode_media']['caption_is_edited'] figura como "False"
me gustaria almacenarlo $VerdoFalso= $json2['graphql']['shortcode_media']['caption_is_edited']
y que $VerdoFalso quede igual a "False" o "true" pero en string
#6
Muchisimassssssssssssssssssssssss gracias !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  :) voy aprendiendo de a poco
#7
Hola. ¿cómo están?
Me ayudan por favor con este Php, sé que para ustedes seguramente es demasiado simple (tenganme paciencia, estoy aprendiendo).
Mi idea es ... en primera instancia es tomar toda el shortcode de la URL de cada una de las fotos. Hasta ahora todo bien ... pero luego quiero usar el shortcode para ingresar cada una de esas url (osea de cada una de las fotos) y de allí tomar más información como por ejemplo el nombre (full_name , solo puse eso pero mi idea es tomar el full_name y 3 datos mas como la cantidad de followers y la diferencia horaria de post en post, pero bueno con el full_name por ahora vamos bien)

les dejo el codigo:
Código: text
<?php
ini_set('max_execution_time', 0);
$baseUrl = "https://www.instagram.com/explore/tags/comida/?__a=1";
$url = $baseUrl;
$baseUrl2 = "https://www.instagram.com/p/";
$url2 = $baseUrl2;

while(1) {
    $file = fopen("links.txt","a");
    $json = (object) json_decode(file_get_contents($url));
    foreach($json->{'graphql'}->hashtag->edge_hashtag_to_media->edges as $object_return){
        var_dump($object_return->node->shortcode);
        echo "{$object_return->node->shortcode}\n";
        fwrite($file, $object_return->node->shortcode);
        fwrite($file,"\n");
        $url2 .= ($object_return->node->shortcode);
        $url2 .= "/?__a=1";
        echo "{$url2}\n";
        $json2 = (object) json_decode(file_get_contents($url2));
        foreach($json2->{'graphql'}->shortcode_media->owner->full_name as $a){
            echo "{$a}\n";
            fwrite($file,$a);
            fwrite($file,"\n");
   
        }

    }

    fclose($file);
    // Deben modificar la variable $URL y acceder correctamente a ella
    if(!$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->has_next_page) break;
    $url = $baseUrl.'&max_id='.$json->{'graphql'}->hashtag->edge_hashtag_to_media->page_info->end_cursor;
}


Saludosssssssssss espero me puedan ayudar :D
#8
Dudas y pedidos generales / Scraping Selenium
Septiembre 16, 2019, 10:28:26 AM
Hola que tal Fanaticos del Web Scraping !!!!!!!! seguimos con la saga de preguntas para que todos aprendamos. Quiero saber si existe la posibilidad de detectar un idioma... a que voy con esto? haciendo scraping en redes como intagram... voy al post de una persona... puedo detectar en que idioma hablan ? si es si ... como ?
#9
Hola que tal comunidad !!! como estan ?
bueno tengo un problema con un escraping que quiero hacer, ya sea con selenium o cualquier otro medio . El tema es asi.. mi tactica anteriormente era , ver como carga url segun sus diferentes paginas y luego una vez tengo todas las paginas que quiero escribía un codigo para extraer toda la data de cada pagina.
Resulta quiero sacar unos datos de esta pagina "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" para realizar unas metricas. Me gustaria pinchar en 'Mortgage Registration' y cambiarlo a 'Sale' y luego...día por día (desde el 2005) hasta hoy obtener todos los datos de 'Lands Transactions' , 'Buildings transactions', 'Units Transactions' de cada día. El tema es que como verán si pinchan en un dia... luego en el siguiente... la url no cambia !! Nose ni por donde empezar.
#10
Gracias pero no es lo que buscaba , obvio que es un super aporte , pero usar de esa manera selenium me tomaria mucho tiempo tomar todos los datos que quiero
#11
Hola que tal comunidad !!! como estan ?
bueno tengo un problema con un escraping que quiero hacer, ya sea con selenium o cualquier otro medio . El tema es asi.. mi tactica anteriormente era , ver como carga url segun sus diferentes paginas y luego una vez tengo todas las paginas que quiero escribía un codigo para extraer toda la data de cada pagina.
Resulta quiero sacar unos datos de esta pagina "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta" para realizar unas metricas. Me gustaria pinchar en 'Mortgage Registration' y cambiarlo a 'Sale' y luego...día por día (desde el 2005) hasta hoy obtener todos los datos de 'Lands Transactions' , 'Buildings transactions', 'Units Transactions' de cada día. El tema es que como verán si pinchan en un dia... luego en el siguiente... la url no cambia !! Nose ni por donde empezar.
#12
Dudas y pedidos generales / Scrapy
Julio 01, 2019, 04:52:09 AM
Hola que tal todos como estan?
estoy a full con el tema del scrapy y queria saber que tan real puede ser crean un scraper que capte info en el momento con ayuda de machine learning ?
por ahi con un ejemplo queda mas claro, imaginen poder crear un algoritmo de machine learning que permita detectar todas las personas que estan hablando de tal tema (ejemplo futbol) en la red. Y que por ejemplo si un usuario lo publica en facebook me llegue una notificacion con su nombre. Se me ocurre que podria ser con Selenium... pero el change de pagina tardaria mucho por lo que no me avisaria en el momento.
gracias
#13
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Buenas, puedes utilizar el módulo BeautifulSoup para eso si quieres, te resultará más fácil. Acá te dejo un link para que puedas revisarlo:

Scraping con BeautifulSoup:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Espero que te sirva, saludos!

Gracias pero si lo hago con BeautifulSoup creo que se tardaria mucho en hacer un scraping completo a toda la web... la pagina tampoco explica como entrar a cada link y escrapear cada link particular
#14
Como les va a todos !!!!!!! ???? espero que super bien.
Hace unos dias estoy luchando con un scraper que quiero realizar a la siguiente pagina:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
mi idea es poder entrar a cada una de las casas y extraer informacion de estas, haciendo un scraping vertical y horizontal (todas las casas de la pagina, hasta la pagina 10... por lo que si en una pagina hay 30 casas... seria un total de 300 casas a escrapear).
He comenzado utilizando selenium , luego al darme cuenta de que tarda muchiiisimooo en abrir la pagina, sacar los datos, cerrar la pagina y hacer esto con todos los links.. he decidido migrar a scrapy.. este funciona rapido, el problema es que nose por que funciona como quiere jejeje. El codigo no me esta tomando las casas en orden (comenzando desde arriba hasta la de mas abajo) ni tampoco me toma todas las casas de la pagina. Con selenium lo bueno es que podia tomar datos como el mail y el telefono. En Scrapy tambien esta en un " </script>,<script> window.propertyfinder.settings.moreProperties" abajo de todo ... pero nose como sacarlo de ahi... y otra cosa que me gustaria mucho es poder sacar la info del grafico
les paso el codigo para que lo puedan chequear. Creo que estoy haciendo algo mal en las reglas.
muchisimas gracias a todos


Código: text
from scrapy.item import Field,Item 
from scrapy.spiders import CrawlSpider,Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.loader import ItemLoader
from scrapy.loader.processors import MapCompose


class PropietiItem(Item):
    titulo=Field()
    tipo= Field()
    reference=Field()
    agente= Field()
    company=Field()
    orn=Field()
    brn=Field()
    precio=Field()
    tipodepropiedad=Field()
    trakheesi=Field()
    bedrooms=Field()
    bathrooms=Field()
    furnishings=Field()
    area=Field()
    amenities=Field()
    fecha=Field()
    descripcion=Field()
    trendsandprice=Field()
    averagerent=Field()
    averagesize=Field()
    script=Field()
    grafico=Field()
    telefono=Field()
    mail=Field()






class PropietiCrawler(CrawlSpider):
    name= "MiPrimerCrawler"
    start_urls= ['https://www.propertyfinder.ae/en/search?c=2&l=1&ob=nd&page=1']
    allowed_domains= ['propertyfinder.ae']

    rules= (
        Rule(LinkExtractor(restrict_xpaths=('//a [@class="pagination__link pagination__link--next"]')),follow=True),
        Rule(LinkExtractor(restrict_xpaths=('//div [@class="card-list__item"]//a [@class="card card--clickable"]')),follow=True,callback= 'parse_items'),
    )

    def parse_items(self,response):
        item= ItemLoader(PropietiItem(),response)
        item.add_xpath('titulo','/html/body/main/div[1]/div/div[2]/div[2]/div[1]/div/h1/text()')
        item.add_xpath('tipo','/html/body/main/div[1]/div/div[2]/div[2]/div[1]/div/div/h2/text()')
        item.add_xpath('reference','/html/body/main/div[1]/div/div[2]/div[2]/div[1]/div/div/div/strong/text()')
        item.add_xpath('agente','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[2]/div[1]/div[1]/div[2]/div[1]/div[2]/div/text()')
        item.add_xpath('company','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[2]/div[1]/div[1]/div[2]/div[2]/div[2]/text()')
        item.add_xpath('orn','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[2]/div[1]/div[1]/div[2]/div[3]/div/text()')
        item.add_xpath('brn','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[2]/div[1]/div[1]/div[2]/div[4]/div/text()')
        item.add_xpath('precio','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[1]/div[2]/div/div/span[1]/text()')
        item.add_xpath('tipodepropiedad','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[2]/div[2]/text()')
        item.add_xpath('trakheesi','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[4]/div[2]/text()')
        item.add_xpath('bedrooms','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[5]/div[2]/text()')
        item.add_xpath('bathrooms','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[6]/div[2]/text()')
        item.add_xpath('furnishings','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[7]/div[2]/text()')
        item.add_xpath('area','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[2]/div[1]/div/div/div[8]/div[2]/text()')
        item.add_xpath('amenities','//div [@class="amenities__content"]/text()')
        item.add_xpath('fecha','//div [@class="last-update"]/text()')
        item.add_xpath('descripcion','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[4]/text()')
        item.add_xpath('trendsandprice','//span [@class="market-trends__sub-heading-value"]/text()')
        item.add_xpath('averagerent','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[8]/div/div[3]/div[1]/div[1]/div[2]/strong/text()')
        item.add_xpath('averagesize','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[8]/div/div[3]/div[1]/div[2]/div[2]/strong/text()')
        item.add_xpath('script','/html/body/script[5]/text()')
        item.add_xpath('grafico','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[1]/div[8]/div/div[2]/div/div/div/svg/g[12]/g/text()')
        item.add_xpath('telefono','/html/body/main/div[1]/div/div[2]/div[2]/div[3]/div[2]/div[1]/div[2]/div[2]/div[1]/div/div/div/span/span[2]/text()')
        yield item.load_item()
   
   
#15
Dudas y pedidos generales / Ayuda con Scraping
Mayo 23, 2019, 04:54:57 PM
Hola que tal gente como estas? estoy en la duda, sigo aprendiendo scraping de a poco. Intente hacer scraping a diferentes paginas, siguiendo el post de undercode (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) donde explica como extraer los mensajes.. habla de ir al codigo fuente de la pagina... a la parte de 'javascript' 'windows shared_data' .. y ese objeto en javascript y lo pasa a un beautify para trabajarlo como json....
Por otro lado estube haciendo scraping a otras paginas donde accedia a los datos mediante Networks (que si estoy acertado, ahi te muestra como se van cargando las pagina), una vez alli voy a los headers => request URL y me aparecia algo como lo siguiente (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) y accedia a los datos desde alli.

bueno ahora bien se viene la pregunta... no entiendo por que en instegram no logro acceder por networks.... osea se supone que el texto de la gente se carga en un momento en la pagina no ? intento ingresar y me aparece esto . (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) por que??? por favor si alguien me ayuda o me explica (mejor) como es que funciona se lo super agradeceria. son unos genios todos ! .

Plus: si tambien tienen ganas de explicarme si es posible utilizar Selenium pero cambiando de proxies (que no sea tor por que algunas paginas no las toma) se los agradeceria tambien !  Mil puntoss al que ayudaaaaa ! jajajaja
#16
Hola que tal?
les vengo a contar sobre mi problema, hace un mes intento intento intento y no puedo hacer scraping a una url. Mi idea es inventar un sistema de ir cambiando los proxies y cuando te bajan uno.. cambiar al otro y seguir con el scraping (o cualquier otra forma que permita hacer scraping ilimitado) . Es importante que si alguien me ayuda( ojala si ) intente hacerlo con el link que pase reiteradas veces a ver si funciona, por que me a pasado que proponen otros links y no la url que he mandado.
en este scrip buscamos los proxies....

Código: text
import requests
from bs4 import BeautifulSoup
sourceProxy = requests.get('https://free-proxy-list.net/', headers={'User-Agent':'Mozilla/5.0'})
bSoup = BeautifulSoup(sourceProxy.text,"lxml")
for items in bSoup.select("tbody tr"):
    proxy_list = ':'.join([item.text for item in items.select("td")[:2]])
    print(proxy_list)


hasta ahi muy lindo todo... ahora vamos a pegarle a la url...
Código: text

import requests

validador = "https://www.espanol.skyscanner.com/g/browseservice/dataservices/browse/v3/bvweb/AR/ARS/es-MX/destinations/es/ar/2019-06-22/?profile=minimalcityrollupwithnamesv2&include=image;holiday&apikey=8aa374f4e28e4664bf268f850f767535"

proxy = '179.124.240.199:40524' # se podria hacer la iteracion de arriba pero vamos a probar con esta..
print("Request: ")
try:
    response = requests.get(validador,proxies={"http": proxy, "https": proxy})
    print(response.json())
except:
    print("Connnection error")


una de las respuestas que me da
{'redirect_to': '/sttc/px/captcha/index.html?url=Lw==&uuid=ace23420-70e8-11e9-9e16-99c145471a63&vid=', 'reason': 'blocked'}

por favor ayuda :(
#17
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Es que creo que no estas entiendo bien las partes del script:

Esto es una parte:

Código: text

import requests
from bs4 import BeautifulSoup
sourceProxy = requests.get('https://free-proxy-list.net/', headers={'User-Agent':'Mozilla/5.0'})
bSoup = BeautifulSoup(sourceProxy.text,"lxml")
for items in bSoup.select("tbody tr"):
    proxy_list = ':'.join([item.text for item in items.select("td")[:2]])
    print(proxy_list)

Esa primera parte se encarga de obtener los proxys de la web y mostrarlos por pantalla.

y esta es otra

Código: text

import requests

validador = 'https://httpbin.org/ip'
proxy = '179.124.240.199:40524' # ingresa una iteracion para que vaya recorriendo los proxies a medida que les da timeout
print("Request: ")
try:
    response = requests.get(validador,proxies={"http": proxy, "https": proxy})
    print(response.json())
except:
    print("Connnection error")

esta otra parte en si lo que hace eso es al proxy obtenido comprueba que este disponible (que funcione)

con esos dos scripts deberias combinarlos y hacer el request a la web que buscas...
Por ahora no puedo ayudarte más pero no deberia ser impedimento para que lo termines solo, no se cuales sean tus conocimientos de python, pero te recomendaria que le sigas metiendo cabeza porque ya esta casi resuelto.
Cuando tenga tiempo veo si te puedo dar otra mano. El tema es que tampoco voy a hacer todo por vos :P

Hola que tal ? mil perdones en tardar en contestar, sinceramente no lo quise hacer por no sentirme invasivo y preguntarte. Lo he intentado todo este tiempo , pero por alguna razon no me deja , he hecho una iteraccion para que me vaya tomando los proxy pero no hay caso. No se como hacerlo (y sinceramente antes de tirar la toalla prefiero sacarme la timides y preguntarte, asi se aprende creo yo ) el error que me da es import requests
{'redirect_to': '/sttc/px/captcha/index.html?url=Lw==&uuid=ace23420-70e8-11e9-9e16-99c145471a63&vid=', 'reason': 'blocked'}
nose si tu lo haz intentado con el link que he enviado en la pagina, pero con ese link no me funciona , se que parezco molesto pero solo quiero aprender y llegar a saber lo que vos sabes
#18
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
muy bien gracias por preguntar, en un par de horas me siento en la pc de nuevo y te doy una mano con eso a ver si lo podemos sacar, un saludo.

ufff te lo super agradeceria, sos un genio ! :)

El script no obtenía los proxies, ya modifique una parte

Código: text

import requests

validador = 'https://httpbin.org/ip'
proxy = '179.124.240.199:40524' # ingresa una iteracion para que vaya recorriendo los proxies a medida que les da timeout
print("Request: ")
try:
    response = requests.get(validador,proxies={"http": proxy, "https": proxy})
    print(response.json())
except:
    print("Connnection error")


esa es la validación del proxy, si no esta disponible te dira erorr de conexion
ya creo que podes seguir ahciendolo vos

como estas ?? primero que nada te super agradezco por estar ayudandome. Mira te cuento entente hacerlo como decis, me habia armado tambien un requests de proxies (aunque el tuyo es mejor jejee) y despues lo intento usar pero me aparece como blocked .... mira intenta vos con la siguiente
validador = "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta"
si lo logras la verdad sos un crack yo estoy a punto de tirar la toalla :(
#19
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
muy bien gracias por preguntar, en un par de horas me siento en la pc de nuevo y te doy una mano con eso a ver si lo podemos sacar, un saludo.

ufff te lo super agradeceria, sos un genio ! :)
#20
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
porque mejor no usas tor services?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Como estas??? muchisimas gracias por responder , realmente estoy desesperado por que no lo puedo lograr, necesito ayudaa de todos los que puedan aportar. Intento con tor pero el servidor de la web me bloquea . Ya no se que hacer :(