Tutorial introductorio de niñera del rastreador de comercio electrónico de Python (orientación pura para principiantes)

imagen

Aula de Turing Python

Changsha Turing Education comenzó a ingresar a la industria de la educación en 2001, basada en la educación vocacional pan-IT, con el objetivo de crear talentos de alta tecnología, enfocándose en brindar cursos de capacitación vocacional personalizados y de varios niveles, y cultivando el desarrollo, la aplicación y la tecnología de la tecnología. habilidades para diversas industrias Los talentos de nivel medio a alto en la gestión y otros puestos están comprometidos a convertirse en un proveedor de contenido de educación vocacional de alta calidad.

0 1

Ventajas de Python

Para el desarrollo de rastreadores web, Python tiene ventajas naturales inigualables, aquí se analizan y explican sus ventajas desde dos aspectos.

1. Tome la interfaz API de detalles del producto de comercio electrónico de la página web en sí

En comparación con otros lenguajes de programación estáticos (como Java, C# y C++), Python tiene una interfaz más concisa para obtener documentos web y, en comparación con otros lenguajes de secuencias de comandos dinámicos (como Perl, Shell), el paquete urllib de Python proporciona una API relativamente completa para acceder a documentos web.

Además, el rastreo de páginas web a veces necesita simular el comportamiento de los navegadores, y muchos sitios web están bloqueados para rastreadores directos. En este punto, es necesario simular el comportamiento del agente de usuario para construir una solicitud adecuada (simular el inicio de sesión del usuario, simular el almacenamiento y la configuración de la sesión/cookie). Hay excelentes paquetes de terceros en Python para ayudar con estas tareas (como solicitudes, mecanizar).

2. Procesamiento después del rastreo web

Las páginas web rastreadas generalmente deben procesarse, como filtrar etiquetas html, extraer texto, etc. beautifulsoap de Python proporciona una función de procesamiento de documentos concisa, que puede completar la mayoría del procesamiento de documentos con códigos muy cortos.

De hecho, muchos lenguajes y herramientas pueden realizar las funciones anteriores, pero usar Python puede hacerlo de la manera más rápida y limpia.

La vida es corta, necesitas Python.

PD: python2.x y python3.x son muy diferentes. Este artículo solo analiza el método de implementación del rastreador de python3.x.

02

marco del rastreador

Administrador de URL: administre la colección de URL que se rastrearán y la colección de URL que se rastrearon, y envíe las URL que se rastrearán al descargador de páginas web.

Descargador de páginas web (urllib): rastrea la página web correspondiente a la URL, guárdala como una cadena y envíala al analizador de páginas web.

Analizador de páginas web (BeautifulSoup): analice datos valiosos, guárdelos y agregue URL al administrador de URL al mismo tiempo.

0 3

administrador de URL

habilidades básicas

  • Agregue una nueva URL a la colección de URL que se rastrearán.

  • Determine si la URL que se agregará está en el contenedor (incluida la colección de URL que se rastrearán y la colección de URL rastreadas).

  • Obtener la URL que se rastreará.

  • Determine si hay una URL para rastrear.

  • Mueva las URL rastreadas de la colección de URL rastreadas a la colección de URL rastreadas.

método de almacenamiento

1. La colección de URL de la memoria (memoria de Python)
se rastreará: set ()
ha rastreado la colección de URL: set ()

2. URL de la base de datos relacional (mysql)
(url, is_crawled)

3. Colección de URL de caché (redis)
que se rastreará: establecer
Colección de URL rastreada: establecer

Las grandes empresas de Internet generalmente almacenan URL en la base de datos de caché debido al alto rendimiento de la base de datos de caché. Las pequeñas empresas generalmente almacenan las URL en la memoria y las almacenan en una base de datos relacional si desean almacenarlas de forma permanente.

0 5

descargador web urllib

Descargue la página web correspondiente a la URL en el local y guárdela como un archivo o cadena.

método básico

Cree un nuevo baidu.py, el contenido es el siguiente:

import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')buff = response.read()html = buff.decode("utf8")print(html)
 
 

Ejecute python baidu.py en la línea de comando y podrá imprimir la página obtenida.

Solicitud de construcción

El código anterior se puede modificar para:

import urllib.requestrequest = urllib.request.Request('http://www.baidu.com')response = urllib.request.urlopen(request)buff = response.read()html = buff.decode("utf8")print(html)
 
 

llevar parámetros

Cree un nuevo baidu2.py, el contenido es el siguiente:

import urllib.requestimport urllib.parse
url = 'http://www.baidu.com'values = {'name': 'voidking','language': 'Python'}data = urllib.parse.urlencode(values).encode(encoding='utf-8',errors='ignore')headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0' }request = urllib.request.Request(url=url, data=data,headers=headers,method='GET')response = urllib.request.urlopen(request)buff = response.read()html = buff.decode("utf8")print(html)
 
 

Use Fiddler para monitorear datos

Para ver si la solicitud realmente incluye parámetros, debe usar fiddler.

añadir procesador

 
 

import urllib.requestimport http.cookiejar# 创建cookie容器cj = http.cookiejar.CookieJar()# 创建openeropener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))# 给urllib.request安装openerurllib.request.install_opener(opener)# 请求request = urllib.request.Request('http://www.baidu.com/')response = urllib.request.urlopen(request)buff = response.read()html = buff.decode("utf8")print(html)print(cj)

0 6

Analizador web (BeautifulSoup)

Extraiga datos valiosos y nuevas listas de URL de las páginas web.

selección del analizador

Para implementar el analizador, puede elegir usar expresiones regulares, html.parser, BeautifulSoup, lxml, etc. Aquí elige BeautifulSoup. Entre ellos, las expresiones regulares se basan en la coincidencia aproximada, mientras que los otros tres se basan en el análisis estructurado DOM.

Prueba de instalación de BeautifulSoup

1. Para instalar, ejecute pip install beautifulsoup4 en la línea de comandos.
2. prueba

 
 

import bs4print(bs4)

uso básico

1. Crea un objeto BeautifulSoup

 
 

import bs4from bs4 import BeautifulSoup

# 根据html网页字符串创建BeautifulSoup对象html_doc = """<html><head><title>The Dormouse's story</title></head><body><p class="title"><b>The Dormouse's story</b></p><p class="story">Once upon a time there were three little sisters; and their names were<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;and they lived at the bottom of a well.</p><p class="story">...</p>"""soup = BeautifulSoup(html_doc)print(soup.prettify())

2. Nodos de acceso

 
 

print(soup.title)print(soup.title.name)print(soup.title.string)print(soup.title.parent.name)

print(soup.p)print(soup.p['class'])

3. Especificar etiqueta, clase o id.

 
 

print(soup.find_all('a'))print(soup.find('a'))print(soup.find(class_='title'))print(soup.find(id="link3"))print(soup.find('p',class_='title'))

4. Encuentra todos los enlaces de etiqueta <a> del documento

 
 

for link in soup.find_all('a'):    print(link.get('href'))

Hay una advertencia De acuerdo con el mensaje, al crear el objeto BeautifulSoup, simplemente especifique el analizador.

 
 

soup = BeautifulSoup(html_doc,'html.parser')

5. Obtenga todo el contenido de texto del documento

 
 

print(soup.get_text())

6. Emparejamiento regular

 
 

link_node = soup.find('a',href=re.compile(r"til"))print(link_node)

Supongo que te gusta

Origin blog.csdn.net/onebound_linda/article/details/131892097
Recomendado
Clasificación