¿Cómo crea Python su propio grupo de IP? Este artículo te enseña ~

prefacio

¡Hola! Hola a todos, este es el Rey Demonio~

Entorno de desarrollo:

  • Pitón 3.8
  • Pycharm

Uso del módulo:

  • solicitudes >>> solicitudes de instalación de pip
  • parsel >>> pip install parsel

Si instala módulos de terceros de Python:

  1. win + R Ingrese cmd Haga clic en Aceptar, ingrese el nombre del módulo de instalación del comando de instalación pip (solicitudes de instalación de pip) Ingrese
  2. Haga clic en Terminal en pycharm para ingresar el comando de instalación

¿Cómo configurar el intérprete de python en pycharm?

  1. Seleccionar archivo >>> configuración >>> Proyecto >>> intérprete de python (intérprete de python)
  2. Haga clic en el engranaje, seleccione agregar
  3. Agregar ruta de instalación de python

¿Cómo instala pycharm los complementos?

  1. Seleccionar archivo >>> configuración >>> Complementos
  2. Haga clic en Marketplace e ingrese el nombre del complemento que desea instalar. Por ejemplo: traducción de entrada de complemento de traducción/entrada de complemento de chino Chino
  3. Seleccione el complemento correspondiente y haga clic en instalar.
  4. Después de que la instalación sea exitosa, aparecerá la opción para reiniciar pycharm, haga clic en Aceptar y reinicie para que surta efecto.

estructura de ip proxy

proxies_dict = {
    
    
    "http": "http://" + ip:端口,
    "https": "http://" + ip:端口,
}

Ideas:

1. Análisis de la fuente de datos

Encuentra el contenido de los datos que queremos, de dónde provienen

2. Pasos de implementación del código:

  1. enviar solicitud, para destino url enviar solicitud
  2. Obtenga datos, haga que el servidor devuelva los datos de respuesta (código fuente de la página web)
  3. Analizar los datos y extraer el contenido de datos que queremos
  4. Guarde datos, rastree la base de datos csv local de videos musicales... Detección de IP, detecte si el proxy IP está disponible, guarde con proxy IP

from import from
import
import what method from what module
from xxx import * # importar todos los métodos


código

# 导入数据请求模块
import requests  # 数据请求模块 第三方模块 pip install requests
# 导入 正则表达式模块
import re  # 内置模块
# 导入数据解析模块
import parsel  # 数据解析模块 第三方模块 pip install parsel  >>> 这个是scrapy框架核心组件


lis = []
lis_1 = []

# 1. 发送请求, 对于目标网址发送请求 https://www.kuaidaili.com/free/
for page in range(11, 21):
    url = f'https://www.kuaidaili.com/free/inha/{
    
    page}/'  # 确定请求url地址
    """
    headers 请求头 作用伪装python代码
    """
    # 用requests模块里面get 方法 对于url地址发送请求, 最后用response变量接收返回数据
    response = requests.get(url)
    # <Response [200]>  请求之后返回response响应对象, 200状态码表示请求成功
    # 2. 获取数据, 获取服务器返回响应数据(网页源代码)  response.text 获取响应体文本数据
    # print(response.text)
    # 3. 解析数据, 提取我们想要的数据内容
    """
    解析数据方式方法:
        正则: 可以直接提取字符串数据内容
    需要把获取下来html字符串数据 进行转换
        xpath: 根据标签节点 提取数据内容
        css选择器: 根据标签属性提取数据内容 
        
        哪一种方面用那种, 那是喜欢用那种
    """
    # 正则表达式提取数据内容
    """
    # 正则提取数据 re.findall() 调用模块里面的方法
    # 正则 遇事不决 .*? 可以匹配任意字符(除了换行符\n以外) re.S
    
    ip_list = re.findall('<td data-title="IP">(.*?)</td>', response.text, re.S)
    port_list = re.findall('<td data-title="PORT">(.*?)</td>', response.text, re.S)
    print(ip_list)
    print(port_list)
    """
    # css选择器:
    """
    # css选择器提取数据 需要把获取下来html字符串数据(response.text) 进行转换
    # 我不会css 或者 xpath 怎么办
    # #list > table > tbody > tr > td:nth-child(1)
    # //*[@id="list"]/table/tbody/tr/td[1]
    selector = parsel.Selector(response.text) # 把html 字符串数据转成 selector 对象
    ip_list = selector.css('#list tbody tr td:nth-child(1)::text').getall()
    port_list = selector.css('#list tbody tr td:nth-child(2)::text').getall()
    print(ip_list)
    print(port_list)
    """
    # xpath 提取数据
    selector = parsel.Selector(response.text) # 把html 字符串数据转成 selector 对象
    ip_list = selector.xpath('//*[@id="list"]/table/tbody/tr/td[1]/text()').getall()
    port_list = selector.xpath('//*[@id="list"]/table/tbody/tr/td[2]/text()').getall()
    # print(ip_list)
    # print(port_list)
    for ip, port in zip(ip_list, port_list):
        # print(ip, port)
        proxy = ip + ':' + port
        proxies_dict = {
    
    
            "http": "http://" + proxy,
            "https": "http://" + proxy,
        }
        # print(proxies_dict)
        lis.append(proxies_dict)
        # 4.检测IP质量
        try:
            response = requests.get(url=url, proxies=proxies_dict, timeout=1)
            if response.status_code == 200:
                print('当前代理IP: ', proxies_dict,  '可以使用')
                lis_1.append(proxies_dict)
        except:
            print('当前代理IP: ', proxies_dict,  '请求超时, 检测不合格')



print('获取的代理IP数量: ', len(lis))
print('获取可用的IP代理数量: ', len(lis_1))
print('获取可用的IP代理: ', lis_1)

dit = {
    
    
    'http': 'http://110.189.152.86:40698',
    'https': 'http://110.189.152.86:40698'
}

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

videotutorial

¡La IP está bloqueada! ! ¿Busca un agente para continuar? Enseñarle a recopilar IP gratis y probar si está disponible ~

epílogo

Bueno, ¡este artículo mío termina aquí!

Si tiene más sugerencias o preguntas, ¡no dude en comentar o enviarme un mensaje privado! Trabajemos duro juntos (§ •_•) §

¡Sigue al blogger si te gusta, o dale me gusta y comenta mi artículo! ! !

Supongo que te gusta

Origin blog.csdn.net/python56123/article/details/124171676
Recomendado
Clasificación