Python + Scrapy + Selenio Adquisición de Datos

Soy un hombre bueno, un gran civiles inocentes.

Bueno o malo, la clave es que el usuario Oh!

ScrapyEs una herramienta de adquisición de datos de uso común;

SeleniumEs una herramienta de automatización de pruebas del navegador;

Combinado Scrapymecanismo de procesamiento y los datos Seleniumpara simular navegador real para obtener los datos (por ejemplo: inicio de sesión automático, el cambio de página automático, etc.). Puede completar mejor la adquisición.

sobre Scrapy

ScrapyEs el desarrollador de herramientas de una recopilación de datos común en la Web, por APIla obtención de los datos que hemos llegado a ser comunes, pero algunos WebSitetodavía a "rendimiento o seguridad" razones, evitado deliberadamente por algunos medios técnicos APIa la transferencia de datos (por ejemplo, páginas estáticas, una muestra de una sola vez, etc.). Por lo tanto, con el fin de ser capaz de recoger estos datos, podemos analizar los sitios y estructura de etiquetas, y luego por medio de Scrapyla recolección de datos.

Informar a la Scrapyfunción del Marco, y en concreto nosotros cómo ayudó en la recolección de datos que? Echar un vistazo a Scrapyla estructura de la misma:

ScrapyEl flujo de datos se compone de Scrapy Engineun control, de flujo:

  1. EngineInicialización, y de la Spidersolicitud de adquisición.
  2. Para Requestel planificador.
  3. Programador Requestenvió uno por uno para el Scrapy Engineconsumidor.
  4. Scrapy EngineAl descargar el programa de descarga a petición de middleware.
  5. Descargador utilizará Requestla página adquirida como un Responseretorno al resultado Scrapy Engine.
  6. Scrapy EngineA partir de Downloaderla recepción Responsey envía Spiderproceso (araña Middleware).
  7. SpiderProcesamiento Responsey Scrapy Engineretorno Item.
  8. Scrapy EngineEnvía el procesado Itema una Item Pipelineseñal de transmisión, mientras que el procesado en conjunto para el planificador ( Scheduler), a petición de una solicitud de recogida.

Repita el proceso de solicitud de recogida pasos anteriores, hasta que Schedulerninguna nueva Request.

ScrapyTutorial de instalación: HTTPS: //doc.scrapy.org/en/lat ...

la creación del proyecto scrapy

Hoy en día tomar 清博大数据como una muestra de casos, para automatizar el inicio de sesión, la búsqueda y recopilación de datos automatizada.

En el archivo en el directorio raíz de la ejecución:

scrapy startproject Qingbo

A continuación, introduzca el directorio  qingbo/ a la siguiente:

scrapy genspider rastreo gsdata.cn

Ven en el directorio siguiente:

Qingbo / 
    scrapy .cfg             # desplegar el archivo de configuración 

    Qingbo /              # Módulo de Python proyecto, importará su código de aquí Papel pintado 
        __init__. Py 

        artículos .PY           # Proyecto Definición de archivos artículos 

        middleware .PY     # métodos de puesta en marcha y el acceso del navegador en esta operación 

        tuberías .py       # manipulación en este proceso final de datos 

        Configuración .PY        # Configuración del archivo del proyecto 

        arañas /           # un directorio del DONDE luego a poner sus arañas
            el __init__. Py 
            rastreo .py       # conexiones y proceso de acceso a los datos de rastreo aquí

 

De hecho, la forma de Scrapycombinar Seleniumla mayor cantidad es crítica,middlewares.py

Específicamente, ¿cómo el paquete puede hacer referencia en el presente documento: HTTPS: //www.osgeo.cn/scrapy/t ...

Acerca de selenio

SeleniumEs una fuente abierta de prueba automatizada de marco para verificar la aplicación Web por diferentes navegadores y plataformas actualmente soportar múltiples llamadas de idiomas, tales como: Python, Java, PHP y así sucesivamente.

pruebas de Selenium se ejecutan directamente en el navegador, igual que los usuarios reales hacen lo mismo, a fin de tomar ventaja de esto, podemos mejorar la recopilación de datos.

El selenio tutorial de instalación de Python: HTTPS: //selenium-python-zh.re ...

El selenio Caso

Si no hay acceso directo al estado de inicio de sesión  clara amplio de datos de vídeo Tencent

No es sorprendente, entonces, se saltará a la página de inicio de sesión de inicio de sesión. Como ya se ha mencionado Seleniumel entorno de la instalación, donde directamente sobre el código:

sitio abre

= Opciones de las opciones () 
options.headless = Falso 
conductor = webdriver.Firefox (= Opciones Opciones) 
driver.get ( ' https://u.gsdata.cn/member/login ' ) 
driver.implicitly_wait ( 10) # página se abre requiere tiempo de carga, se propone añadir una espera silenciosa

imagen-20200327102210587

la operación de inicio de sesión

Dos se pueden encontrar en la pestaña, a saber: identificación de código de dos dimensiones, Qing Bo cuenta de inicio de sesión.

Página ha sido abierto, la forma de cuenta de pestaña-blog que realice la desconexión?

Aquí lo que necesitamos saber acerca de XPath (Lenguaje de rutas XML), que es un documento XML se utiliza para determinar la posición de una parte de la lengua.

En pocas palabras, lo que podemos "claro-blog cuenta de inicio de sesión" la lengüeta de posicionamiento con XPath

imagen-20200327111331243

driver.find_element_by_xpath ( " .//div[@class='loginModal-content']/div/a[2] " ) .click ()

A continuación, vaya a la caja de contraseña de la cuenta, rellene la información:

driver.find_element_by_xpath ( " .//input[@name='username '] " ) .send_keys ( " nombre de usuario " ) 
driver.find_element_by_xpath ( " .//input[@name='password'] " ) .send_keys ( " contraseña " )

Por último, haga clic en el botón de inicio de sesión:

driver.find_element_by_xpath ( " .//div/button[@class='loginform-btn '] " ) .click () 
driver.implicitly_wait ( 5)

imagen-20200327112059788

inicio de sesión correcto! ~

operación de consulta

driver.get ( ' http://www.gsdata.cn/ ' ) 
driver.find_element_by_xpath ( " .//input[@id='search_input '] " ) .send_keys ( " 腾讯视频" ) 
driver.find_element_by_xpath ( " . // botón [@ class = 'Bot sin BTN-default fl search_wx'] " ) .click () 
driver.implicitly_wait ( 5)

imagen-20200327112437222

Después de los resultados de búsqueda son los siguientes:

imagen-20200327112546457

Por Xpathel posicionamiento del vídeo Tencent apestaña, y luego haga clic en el vídeo Tencent datos de contenido de la página:

driver.find_element_by_xpath (
     " .//ul[@class='imgword-list']/li[1]/div[@class='img-word']/div[@class='word']/h1/a " ) .click () 
driver.implicitly_wait ( 5)

contenido página

imagen-20200327115153854

Aquí, y no tiene miedo de sorpresas? Ahora se puede por Xpathel procesamiento que necesita para localizar y adquirir contenidos, no elaborado.

Cerrar Operación

driver.close ()

Los datos completa adquisición, si no hay otra operación, y se puede poner fuera del navegador.

resumen

En este capítulo se describe Scrapyy Seleniumconceptos básicos y el uso general, en general, nos puede ayudar a ofrecer nuevas soluciones e ideas para resolver algunos de los problemas.

Referencia

https://www.cnblogs.com/luozx207/p/9003214.html

https://kite.com/blog/python/web-scraping-scrapy/

https://docs.scrapy.org/en/latest/intro/tutorial.html

 

Supongo que te gusta

Origin www.cnblogs.com/wilburxu/p/12581049.html
Recomendado
Clasificación