python获取代理ip并放入文件

部署运行你感兴趣的模型镜像
from multiprocessing import Process
from datetime import datetime
import requests
import re
import json
import time
import random

def getIps(page):
    # 定义要请求的URL
    url = "https://www.kuaidaili.com/free/intr/"+str(page)
    # 生成1到10之间的随机整数
    sleep_time = random.randint(1, 15)

    # 暂停程序执行sleep_time秒
    time.sleep(sleep_time)
    # 定义HEAD
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    }

    # 发送带有HEAD的GET请求
    response = requests.get(url, headers=headers)
    return response.text



def getIpsByRe(xml):

    pattern = "const fpsList.*"
    lines = re.findall(pattern, xml)
    if lines:
        json_str=lines[0]
        # 去掉字符串开头的 'const fpsList = ',只保留JSON部分
        json_str = json_str.replace('const fpsList = ', '')
        json_str = json_str.replace('];', ']')
        # 解析JSON字符串
        fpsList = json.loads(json_str)

        # 获取所有ip值
        ip_values = [item.get('ip') for item in fpsList]
        print(ip_values)
        return ip_values
    else:
        return ""
def writeIps(fileName,page):
    response = getIps(page)
    ips=getIpsByRe(response)
    # 使用open函数创建一个新文件,如果文件已经存在,则以追加模式打开文件
    if ips:
        for ip in ips:
            with open(fileName, 'a') as file:
                # 在文件中写入一些内容
                file.write(str(ip) + "\n")
        print(f"'{page}'写入完成")


if __name__ == '__main__':
    # 获取当前时间
    currentTime = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
    pList=[]
    # 定义新文件的名称,包括当前时间
    fileName = f"{currentTime}_ips.txt"
    # 需要获取的页数个数
    pages = 10
    for i in range(pages):
        p=Process(target=writeIps, args=(fileName,i))
        pList.append(p)
        p.start()
    for p in pList:
        p.join()
    print("所有进程已结束!ips文件已生成!")

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值