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文件已生成!")
python获取代理ip并放入文件
最新推荐文章于 2025-12-17 05:58:59 发布
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Python3.11
Conda
Python
Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本
2万+

被折叠的 条评论
为什么被折叠?



