Principio del rastreador web Python y uso de IP proxy

Tabla de contenido

Prefacio

1. Principio del rastreador web Python

2. Caso del rastreador web Python

Paso 1: Analiza la página web

Paso 2: extraer datos

Paso 3: almacenar datos

3. Utilice IP proxy

4. Resumen


Prefacio

Con el desarrollo de Internet, la cantidad de información en Internet se ha vuelto cada vez mayor. Obtener estos datos es una tarea importante para los analistas e investigadores de datos. Python es un lenguaje de programación eficiente ampliamente utilizado en los campos del desarrollo web y análisis de datos. Los rastreadores web de Python pueden visitar sitios web automáticamente y extraer datos de ellos. Este artículo presentará el principio del rastreador web Python y el uso de IP proxy, y proporcionará un ejemplo.

1. Principio del rastreador web Python

Python es un lenguaje de programación eficiente que es popular en el campo del desarrollo web y el análisis de datos. Los excelentes módulos de Python lo hacen más adecuado para el procesamiento de datos a gran escala y la programación de servicios web. Los rastreadores web son una de las herramientas más utilizadas por los desarrolladores de Python.

Un rastreador web es un programa automatizado que puede simular el comportamiento de un navegador humano y buscar y obtener información automáticamente en Internet. Los rastreadores web de Python suelen incluir los siguientes pasos:

  1. Análisis de URL: el rastreador web de Python debe especificar la URL del sitio web que se va a rastrear. Al acceder al enlace, el programa rastreador analizará automáticamente el contenido HTML de la página web, identificará los hipervínculos y descubrirá otros enlaces para obtener una lista de sitios web que deben rastrearse.
  2. Descarga de la página: el rastreador web Python primero debe iniciar una solicitud HTTP. Una vez que el servidor acepta la solicitud HTTP, devolverá la página que el navegador debe representar en forma de código HTML. Los rastreadores web de Python necesitan utilizar bibliotecas, como solicitudes, urllib, etc., para iniciar solicitudes HTTP y descargar datos de páginas.
  3. Análisis de contenido: los rastreadores web de Python suelen utilizar bibliotecas de análisis para analizar datos. Las bibliotecas de análisis pueden extraer etiquetas, texto o atributos específicos y convertirlos en tipos de datos de Python, como listas o diccionarios. Beautiful Soup es una de las bibliotecas de análisis más populares en Python.
  4. Procesamiento de datos: los rastreadores web de Python necesitan procesar y analizar datos. Las bibliotecas de análisis de datos de Python, pandas y NumPy, proporcionan varias herramientas de procesamiento y análisis. Los rastreadores pueden utilizar estas herramientas para limpiar y procesar datos.

Lo anterior es el proceso general del rastreador web Python. A continuación, ilustraremos esto con ejemplos.

2. Caso del rastreador web Python

Tomaremos la recopilación de datos Top250 de la película Douban como ejemplo para presentar en detalle el método de implementación del rastreador web Python.

Paso 1: Analiza la página web

Antes de visitar cualquier página web, debemos comprender la estructura y los elementos de esa página web. En Python, podemos usar la biblioteca de solicitudes para acceder a páginas web y obtener marcado HTML. Aquí está el código de ejemplo:

import requests

url = 'https://movie.douban.com/top250'
response = requests.get(url)
html = response.text

print(html)

Después de obtener las etiquetas HTML, podemos usar la biblioteca Beautiful Soup para analizar la página HTML. Proporciona una forma cómoda de buscar y extraer datos de páginas HTML. Aquí está el código de ejemplo:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')
print(soup.prettify()) #输出格式化的 HTML 代码

Al ejecutar el código anterior, podemos ver el código HTML embellecido en la consola.

Paso 2: extraer datos

Después de analizar la página web, necesitamos extraer datos útiles. En nuestro ejemplo, extraeremos información como el nombre de la película, la clasificación, el tipo de película, el director y los actores de Douban Movie Top250.

# 获取标题信息
titles = [title.text for title in soup.select('div.hd a span')]
print(titles)

# 获取评分信息
scores = [score.text for score in soup.select('div.star span.rating_num')]
print(scores)

# 获取信息文本
lists = [list.text for list in soup.select('div.info div.bd p')]
print(lists)

# 处理信息文本
directors = []
actors = []
for list in lists:
    temp_str = list.strip().split('\n')[0]
    index = temp_str.find('导演')
    if index != -1:
        directors.append(temp_str[index + 3:])
        actors.append(temp_str[:index - 1])
    else:
        directors.append('')
        actors.append(temp_str)
print(directors)
print(actors)
Paso 3: almacenar datos

Finalmente, necesitamos almacenar los datos en un archivo para su posterior procesamiento y análisis. En Python, podemos usar la biblioteca Pandas para almacenar datos en un archivo CSV.

import pandas as pd

data = {'电影名称': titles, '电影评分': scores, '导演': directors, '演员': actors}
df = pd.DataFrame(data)
print(df)

df.to_csv('douban_movies.csv', index=False)

3. Utilice IP proxy

Los rastreadores web de Python generalmente necesitan usar IP proxy para evitar el mecanismo anti-rastreadores del sitio web. Una IP proxy es una dirección IP en otro servidor que oculta nuestra dirección IP y ubicación reales, evitando así las restricciones de acceso al sitio web. En Python, podemos utilizar una IP proxy para acceder al sitio web y lograr la protección de la privacidad.

El uso de IP proxy se puede lograr agregando algunos parámetros. Por ejemplo, podemos usar el parámetro proxies en la biblioteca de solicitudes para especificar la IP del proxy:

proxies = {'http': 'http://user:<password>@<ip_address>:<port>',
           'https': 'https://user:<password>@<ip_address>:<port>'}
response = requests.get(url, proxies=proxies)

En el código anterior, especificamos la IP del proxy para los protocolos HTTP y HTTPS. Donde usuario:contraseña es el nombre de usuario y la contraseña de la IP del proxy, dirección_ip y puerto son la dirección IP y el número de puerto del servidor proxy.

También podemos usar el marco scrapy para implementar el uso de IP proxy. El marco scrapy proporciona múltiples métodos para configurar y cambiar las IP de proxy. Por ejemplo, podemos usar el middleware de descarga en scrapy para especificar la IP del proxy, como seleccionar aleatoriamente la IP del proxy:

import random

class RandomProxyMiddleware(object):
    def __init__(self, proxy_list):
        self.proxy_list = proxy_list

    @classmethod
    def from_crawler(cls, crawler):
        return cls(crawler.settings.getlist('PROXY_LIST'))

    def process_request(self, request, spider):
        proxy = random.choice(self.proxy_list)
        request.meta['proxy'] = proxy

En el código anterior, implementamos un middleware llamado RandomProxyMiddleware, que selecciona aleatoriamente una IP de proxy como proxy para la solicitud. La lista de IP del proxy se puede configurar en el archivo de configuración de scrapy.

4. Resumen

El rastreador web Python es una potente herramienta de análisis y extracción de datos que puede extraer grandes cantidades de datos de Internet para diversos análisis y extracción de datos. En este artículo, presentamos los principios básicos y el uso del rastreador web Python y brindamos un ejemplo de cómo obtener información de películas de las 250 películas principales de Douban. También cubrimos cómo utilizar IP proxy para evitar mecanismos anti-rastreadores de sitios web. Espero que este artículo sea útil para los principiantes en el rastreo web de Python.

Supongo que te gusta

Origin blog.csdn.net/wq10_12/article/details/132758411
Recomendado
Clasificación