Princípio do rastreador da web Python e uso de IP de proxy

Índice

Prefácio

1. Princípio do rastreador web Python

2. Caso do rastreador da web Python

Etapa 1: analise a página da web

Etapa 2: extrair dados

Etapa 3: armazenar dados

3. Use IP proxy

4. Resumo


Prefácio

Com o desenvolvimento da Internet, a quantidade de informações na Internet tornou-se cada vez maior. A obtenção desses dados é uma tarefa importante para analistas e pesquisadores de dados. Python é uma linguagem de programação eficiente amplamente utilizada nas áreas de desenvolvimento web e análise de dados. Os rastreadores da web Python podem visitar sites automaticamente e extrair dados deles. Este artigo apresentará o princípio do rastreador da web Python e o uso de IP proxy, além de fornecer um exemplo.

1. Princípio do rastreador web Python

Python é uma linguagem de programação eficiente, popular na área de desenvolvimento web e análise de dados. Os excelentes módulos do Python o tornam mais adequado para processamento de dados em larga escala e programação de serviços da Web. Os rastreadores da Web são uma das ferramentas mais comumente usadas pelos desenvolvedores Python.

Um rastreador da web é um programa automatizado que pode simular o comportamento de um navegador humano e pesquisar e obter informações automaticamente na Internet. Os rastreadores da web Python geralmente incluem as seguintes etapas:

  1. Análise de URL: o rastreador da web Python precisa especificar o URL do site a ser rastreado. Ao acessar o link, o programa rastreador analisará automaticamente o conteúdo HTML da página da web, identificará os hiperlinks e descobrirá outros links para obter uma lista de sites que precisam ser rastreados.
  2. Download de página: o rastreador da web Python primeiro precisa iniciar uma solicitação HTTP. Assim que o servidor aceitar a solicitação HTTP, ele retornará a página que precisa ser renderizada pelo navegador na forma de código HTML. Os rastreadores da web Python precisam usar bibliotecas, como solicitações, urllib, etc., para iniciar solicitações HTTP e baixar dados da página.
  3. Análise de conteúdo: os rastreadores da web Python geralmente usam bibliotecas de análise para analisar dados. As bibliotecas de análise podem extrair tags, textos ou atributos específicos e convertê-los em tipos de dados Python, como listas ou dicionários. Beautiful Soup é uma das bibliotecas de análise mais populares em Python.
  4. Processamento de dados: os rastreadores da web Python precisam processar e analisar dados. As bibliotecas de análise de dados do Python, pandas e NumPy, fornecem várias ferramentas de processamento e análise. Os rastreadores podem usar essas ferramentas para limpar e processar dados.

O texto acima é o processo geral do rastreador da web Python. Abaixo, ilustraremos isso ainda mais com exemplos.

2. Caso do rastreador da web Python

Tomaremos a coleção de dados Top250 do filme Douban como exemplo para apresentar em detalhes o método de implementação do rastreador da web Python.

Etapa 1: analise a página da web

Antes de visitar qualquer página web, precisamos compreender a estrutura e os elementos dessa página web. Em Python, podemos usar a biblioteca de solicitações para acessar páginas da web e obter marcação HTML. Aqui está o código de exemplo:

import requests

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

print(html)

Depois de obter as tags HTML, podemos usar a biblioteca Beautiful Soup para analisar a página HTML. Ele fornece uma maneira conveniente de localizar e extrair dados de páginas HTML. Aqui está o código de exemplo:

from bs4 import BeautifulSoup

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

Executando o código acima, podemos ver o código HTML embelezado no console.

Etapa 2: extrair dados

Depois de analisar a página web, precisamos extrair dados úteis. Em nosso exemplo, extrairemos informações como nome do filme, classificação, tipo de filme, diretor e atores do 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)
Etapa 3: armazenar dados

Finalmente, precisamos armazenar os dados em um arquivo para posterior processamento e análise. Em Python, podemos usar a biblioteca Pandas para armazenar dados em um arquivo 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. Use IP proxy

Os rastreadores da Web Python geralmente precisam usar IPs de proxy para evitar o mecanismo anti-rastreador do site. Um IP proxy é um endereço IP em outro servidor que oculta nosso endereço IP e localização reais, contornando assim as restrições de acesso ao site. Em Python, podemos usar IP proxy para acessar o site e obter proteção de privacidade.

O uso do IP proxy pode ser conseguido adicionando alguns parâmetros. Por exemplo, podemos usar o parâmetro proxies na biblioteca de solicitações para especificar o IP do proxy:

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

No código acima, especificamos o IP do proxy para os protocolos HTTP e HTTPS. Onde user:password é o nome de usuário e a senha do IP do proxy, ip_address e port são o endereço IP e o número da porta do servidor proxy.

Também podemos usar uma estrutura scrapy para implementar o uso de proxy IP. A estrutura scrapy fornece vários métodos para definir e alternar IPs de proxy. Por exemplo, podemos usar o middleware do downloader no scrapy para especificar o IP do proxy, como selecionar aleatoriamente o IP do 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

No código acima, implementamos um middleware chamado RandomProxyMiddleware, que seleciona aleatoriamente um IP proxy como proxy para a solicitação. A lista de IP do proxy pode ser configurada no arquivo de configurações do scrapy.

4. Resumo

O rastreador da web Python é uma ferramenta poderosa de coleta e análise de dados que pode extrair grandes quantidades de dados da Internet para diversas análises e mineração de dados. Neste artigo, apresentamos os princípios básicos e o uso do rastreador da web Python e fornecemos um exemplo de obtenção de informações de filmes dos 250 principais filmes de Douban. Também abordamos como usar IPs proxy para evitar mecanismos anti-rastreador de sites. Espero que este artigo seja útil para iniciantes no rastreamento da web em Python.

Acho que você gosta

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