spider6

Día 05 Recordando
1, JSON módulo
  1, json.loads ().
    Formato JSON (objeto, matriz) -> formato de Python (diccionario, lista)
  2, json.dumps ()
    el formato de Python (diccionario, lista, tupla) -> formato JSON (objeto, matriz)
2, Ajax dinámico de carga
  1, F12 -> la consulta de datos String.
  2, los params = {montón de parámetros de consulta en la cadena de consulta}
  3, la dirección URL:. F12 atrapado direcciones GET
. 3, selenio + PhantomJS
  . 1, PhantomJS : no interfaz del navegador (la realización de la página cargada en memoria)
  2, etapa
    1, en el módulo
      desde el selenio importación WebDriver
    2, crear un objeto de navegador
      Driver = webdriver.PhantomJS (executable_path = '')
    3, solicitud de retransmisión, la adquisición de información de la página.
      driver.get (URL)
    . 4, para encontrar la posición de nodo
      driver.find_element_by_class_name text = ( "")
    . 5, el texto Enviar
      text.send_keys ( "")
    . 6, al hacer clic
      = Botón driver.find_element_by_id ( "")
      Button.Click ()
    . 7, cerca
      driver.quit ()
. 3, los métodos comunes
  . 1, driver.get (URL)
  2, driver.page_source
  . 3, driver.page_source.find ( "String ')
    -1: no encontrado, fallar
  . 4, driver.find_element_by_id ( "")
  ") 5, driver.find_element_by_name (".
  6, driver.find_element_by_class_name ( "")
  ") 7, driver.find_enlement_by_xpath (".
  8, el nombre del objeto.. send_keys ( "")
  . 9, el nombre del objeto .click ()
  10, nombre de objeto .text
  . 11, driver.quit ()
. 5, selenio + chromedriver
  . 1, descarga el paquete de instalación correspondiente versión
  2, cómo configurar el modo de interfaz de no
    opción = WebDriver. ChromeOpitons ()
    option.set_headless ()
    option.add_argument ( 'size = 1920x3000 Windows')
    
    Driver = webdriver.Chrome (Opciones = Opción)
    driver.get (URL)
************************************************************ ***********
Día 06 Notas
1, caso del arrastre de los productos básicos Jingdong
  ver: 01_ Jingdong rastreo de los productos básicos (la ejecución del script JS) .py
  1, el blanco
    el nombre del producto, el precio del producto, número de comentarios, nombre de la empresa
  2 , XPath que coincida con cada objeto nodo elemento
    // div [@ ID = "J_goodsList"] // Li
  3, al lado de.
    siguiente botón de página (punto de energía): valor de clase-pn siguiente
    botón Siguiente ( no es el punto): clase de la Next-Desactivado es el pn
2, rastreador multi-roscado
  1, proceso
    1, un sistema de aplicación se está ejecutando
    2, un núcleo de CPU sólo se puede realizar una vez que un proceso, otros procesos son todos no estado de funcionamiento
    3, N núcleos de CPU puede realizar tareas simultáneamente N
  2, el hilo
    1, el proceso que comprende la unidad de ejecución, un proceso puede comprender una pluralidad de hilos
    2, el espacio hilos proceso ordinario (1 puede realizar un hilo bloqueo)
  3, GIL: cierre global del intérprete
    pases de ejecución, sólo que ésta, que obtienen un pase que se lleva a cabo, de lo contrario etc.
  4, el escenario
    1, multi-proceso: un gran número de procesos informáticos
    2, multihilo: intensivas operaciones I / O
      reptiles: Red I / O intensivo
      de escritura de archivos: el disco local de E / S
  5, mejor no es su hermana multiproceso caso
    1, URL: http: //www.budejie.com/1
    2, objetivo: pieza de contenido
    3, la expresión XPath
      // div [class = "jr @ C-desc - lista "] / a / texto ()
    4, el conocimiento.
      una cola (cola de importación de la cola)
        PUT ()
    get ()
    Queue.empty (): si el aire
    Queue.join (): Si la cola vacía, ejecutar otros programas
      2, el hilo (importación de roscado)
        de la threading.Thread (target = ......)
    5, el código de lograr.
3, BeautifulSoup analítica
  1. definición: HTML o XML parser, depende de lxml
  2, instalación: pitón -m pip instalar beautifulsoup4
     Importación: Importar en el BeautifulSoup BS4
  3, usando el procedimiento.
    1, el módulo de guía: Import BS4 desde el BeautifulSoup
    2, para crear un objetivo análisis
      sopa = la BeautifulSoup (HTML, 'lxml')
    3, el objeto encontrar nodos.
      R_list = soup.find_all ( "div", attrs {= "clase": "Test"})
  . 4, ver ejemplo de código
  5, BeautifulSoup apoyo de análisis de la biblioteca
    1, lxml: sopa = BeautifulSoup ( html, 'lxml')
      velocidad, alta culpa documento tolerancia
    2, html.parser: biblioteca estándar Python
      son generalmente
    3, XML
      rápido, fuerte documentos de tolerancia a fallos
  6, el selector de nodo
    1, seleccione el nodo y la adquisición de contenido de
      nombre de nodo objeto de nodo .string.
  7, find_all (): devuelve una lista
    r_list = soup.find_all ( "nodo nombre "attrs = {" ':' "})
. 4, Scrapy marco
  1, definido
    marco procesamiento asincrónico, y puede ser configurado muy alto grado de escalabilidad,Python es el marco rastreador más ampliamente usado
  2, la instalación (Ubuntu)
    1 bibliotecas, dependientes de
      la sudo APT-dev-GET a python3 el instalar el libxml2 Python-PIP-dev-dev libxslt1 libffi a zlib1g-dev-dev-dev para libssl
    2, montado Scrapy
      la PIP3 sudo la instalación Scrapy
    . 3, la verificación
      >>> importación Scrapy
    . 4, creando advertencias de proyectos de soluciones
      1, scrary AAA startproject
        "aviso: .... no puede importar de OpenTpye ...."
        porque la versión pyasn1 es demasiado baja, puede actualizar
        sudo PIP3 instalar pyasn1 --upgrade
5, Scrapy marco de los cinco componentes
  1 el motor (motor): el núcleo del marco
  2, planificador (scheduler): la aceptación de un motor procedente de la URL, introduzca la cola
  3, Downloader (Descargador): obtener el código fuente de la página, el retorno a los rastreadores
  4, descargar middleware (Downloader Middlewares)
     araña middleware (araña Middlewares)
  . 5, el conducto de material (tubería artículo): procesamiento de datos
6, un proceso detallado grab marco Scrapy.
7, las etapas de fabricación Scrapy reptiles elemento
  1, el nuevo proyecto
    scrapy startproject nombre de proyecto
  2, objetivos claros (items.py)
  3, por lo que los rastreadores
    en arañas carpeta, ejecute:
    scrapy genspider nombre de archivo "nombre de dominio"
  4, el procesamiento de datos (pipelines.py)
  5, Configuración la settings.py
  . 6, los rastreadores que se ejecutan
    Scrapy rastreo nombre del rastreador
8, la estructura del proyecto scrapy
  Baidu
  ├── Baidu: directorio del proyecto
  │ ├── __init__.py
  │ ├── items.py: definiciones de la estructura de datos de rastreo
  │ ├── middleware .py: araña del descargador de middleware y middleware
  │ ├── pipelines.py: archivos de tuberías, procesamiento de datos
  │ ├── settings.py: proyecto global
  │ └── arañas: carpetas, rastreador almacenado
  │ ├─ ─ baiduspider.py: rastreador / araña
  │ ├── __init__.py
  │       
  └── scrapy.cfg: archivo de configuración del proyecto básico, no cambian
9, la configuración del archivo en detalle
  . 1, la settings.py
    la USER_AGENT = 'Baidu (+ HTTP: //www.yourdomain.com)'

    # robots cumplimiento con el protocolo, en False
    ROBOTSTXT_OBEY = False

    # Máxima concurrencia, por defecto es 16
    CONCURRENT_REQUESTS 6 =.

    # Descarga latencia
    . DOWNLOAD_DELAY = 1
 
    # encabezado de solicitud
    DEFAULT_REQUEST_HEADERS = {
      'del Agente User--': 'el Mozilla / 5.0',
      'Accept': 'text / HTML, archivo application / xhtml + xml, aplicación / xml; Q = 0,9, * / *; Q = 0,8 '
      'la Accept-Language: '' EN',
    }

    # descargado middleware
    DOWNLOADER_MIDDLEWARES = {
       ': 543,' Baidu.middlewares.BaiduDownloaderMiddleware
    }
    
    # conducto de procesamiento de datos
    ITEM_PIPELINES = {
       ' Baidu.pipelines.BaiduPipelineMySQL ': 300,
       'Baidu.pipelines.BaiduPipelineMongo': 200 es,
    }
10, proyecto: agarre Baidu Inicio Fuente, almacenada en la Baidu .html
  . 1, Scrapy startproject Baidu
  2, CD Baidu / Baidu
  . 3, subl items.py (este paso no operativo)
  4, cd arañas
  5, Baidu genspider Scrapy "www.baidu.com"
  6, subl baidu.py
    # nombre de reptil
    # dominio: se centran en el examen
    # start_urls: se centran en el examen

    DEF el análisis sintáctico (Ser, respose):
        con Open ( "Baidu .html "" W ") como F:
        f.write (response.text)
  . 7, CD ../
  . 8, la subl settings.py
    . 1, los robots a False
    2, - Agent-agregar el usuario
      DEFAULT_REQUEST_HEADERS = {
        '- Agent-el usuario' 'Mozilla / 5.0',
    ... ...
      }
  9, cd arañas corren Baidu arrastre Scrapy






Supongo que te gusta

Origin www.cnblogs.com/py321/p/12654876.html
Recomendado
Clasificación