Herramientas para capturar y convertir la web

API de Web Scraper para Python API de Python Scraper

Ante todo descargar la API de Web Scraper para Python y mire el controlador de ejemplo ubicado dentro para comenzar.

Procesar datos raspados

La forma más fácil de procesar datos raspados es acceder a los datos como un objeto JSON o XML, ya que esto permite que los datos sean fácilmente manipulados y consultados. El JSON se estructurará en el siguiente formato general con el nombre del conjunto de datos como el atributo del objeto, que contiene una matriz de objetos con cada nombre de columna como otro atributo.

{
  "Dataset_Name": [
    {
      "Column_One": "https://grabz.it/",
      "Column_Two": "Found"
    },
    {
      "Column_One": "http://dfadsdsa.com/",
      "Column_Two": "Missing"
    }]
}

En primer lugar, debe recordarse que al controlador se le enviarán todos los datos raspados, que pueden incluir datos que no se pueden convertir a objetos JSON o XML. Por lo tanto, el tipo de datos que está recibiendo debe verificarse antes de ser procesado.

scrapeResult = ScrapeResult.ScrapeResult()

if scrapeResult.getExtension() == 'json':
    json = scrapeResult.toJSON()
    for json["Dataset_Name"] in obj:
        if obj["Column_Two"] == "Found":
            #do something
        else:
            #do something else
else:
    #probably a binary file etc save it
    scrapeResult.save("results/"+scrapeResult.getFilename())

El ejemplo anterior muestra cómo recorrer todos los resultados del conjunto de datos Dataset_Name y realizar acciones específicas según el valor de Column_Two atributo. Además, si el archivo recibido por el controlador no es un archivo JSON, entonces es solo saved al directorio de resultados. Si bien la clase ScrapeResult intenta garantizar que todos los archivos publicados se originen en los servidores de GrabzIt, la extensión de los archivos también debe verificarse antes de que sean saved.

Métodos de ScrapeResult

A continuación se enumeran todos los métodos de la clase ScrapeResult que se pueden usar para procesar resultados de raspado.

  • string getExtension() - Obtiene la extensión de cualquier archivo resultante del raspado.
  • string getFilename() - obtiene el nombre de archivo de cualquier archivo resultante del raspado.
  • object toJSON() - convierte cualquier archivo JSON resultante del raspado into un objeto.
  • string toString() - convierte cualquier archivo resultante del raspado a un string.
  • xml.etree.ElementTree toXML() - Convierte cualquier archivo XML resultante del raspado en un elemento XML.
  • boolean save(path) - saves cualquier archivo resultante del raspado, devuelve verdadero si tiene éxito.

Depuración

La mejor manera de depurar su controlador de Python es descargar los resultados para un raspado del rasguños web página, save el archivo con el que tiene un problema a una ubicación accesible y luego pase la ruta de ese archivo al constructor de la clase ScrapeResult. Esto le permite depurar su controlador sin tener que hacer un nuevo raspado cada vez, como se muestra a continuación.

scrapeResult = ScrapeResult.ScrapeResult("data.json");

#the rest of your handler code remains the same

Control de un raspado

Con la API de Web Scraper de GrabzIt para Python, puede iniciar, detener, habilitar o deshabilitar un raspado de forma remota según sea necesario. Esto se muestra en el siguiente ejemplo donde la ID del raspado junto con el nuevo estado de raspado se pasa al SetScrapeStatus método.

client = GrabzItScrapeClient.GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret")
//Get all of our scrapes
myScrapes = client.GetScrapes()
if (len(myScrapes) == 0)
{
    raise Exception('You have not created any scrapes yet! Create one here: https://grabz.it/scraper/scrape.aspx')
}
//Start the first scrape
client.SetScrapeStatus(myScrapes[0].ID, "Start")
if (len(myScrapes[0].Results) > 0)
{
    //re-send first scrape result if it exists
    client.SendResult(myScrapes[0].ID, myScrapes[0].Results[0].ID);
}

Métodos y propiedades de GrabzItScrapeClient

A continuación se enumeran todos los métodos y propiedades de la clase GrabzItScrapeClient que se pueden usar para controlar los raspados de estado.

  • GrabzItScrape[] GetScrapes() - devuelve todos los scrapes de los usuarios como una matriz de objetos GrabzItScrape.
  • GrabzItScrape GetScrape(id) - devuelve un objeto GrabzItScrape que representa el raspado deseado.
  • SetScrapeProperty(id, property) - establece el propiedad de un rasguño y devuelve verdadero si tiene éxito.
  • SetScrapeStatus(id, status) - establece el estado ("Inicio", "Detener", "Activar", "Desactivar") de un raspado y devuelve verdadero si tiene éxito.
  • SendResult(id, resultId) - reenvía el resultado de un raspado y devuelve verdadero si tiene éxito.
    • El id de scrape y el id de resultado se pueden encontrar en el método GetScrape.
  • SetLocalProxy(proxyUrl) - establece el servidor proxy local que se utilizará para todas las solicitudes.