jhao104 / proxy_pool

Python ProxyPool for web spider
https://jhao104.github.io/proxy_pool/
MIT License
20.85k stars 5.05k forks source link

如何修改all只获取ip:port #778

Open shaobeipan opened 7 months ago

shaobeipan commented 7 months ago

如何修改all只获取ip:port 其它的数据不需要。 比如这样 127.0.0.1:8080 127.0.0.1:8080 127.0.0.1:8080 127.0.0.1:8080

ddayhcom commented 6 months ago

源码不会修改 但是我也需要用这个 所以我是用PHP做了一个网页中转的 仅供参考

每次获取一个代理的代码是 
<?php
// 获取API返回的JSON数据
$content = file_get_contents('http://127.0.0.1:5010/get');

// 将JSON数据转换为关联数组
$data = json_decode($content, true);

// 判断是否成功获取到代理IP
if ($data['proxy']) {
  // 将代理IP输出为文本格式,每行一个IP:端口
  echo $data['proxy'] . "\n";
} else {
  echo '127.0.0.1';
}
?>

获取所有IP的代码为 

<?php

$url = 'http://127.0.0.1:5010/all';
$content = file_get_contents($url);
$data = json_decode($content, true);

if (!empty($data)) {
    foreach ($data as $item) {
        echo $item['proxy'] . "\n";
    }
} else {
    echo "No proxies found.";
}
shaobeipan commented 6 months ago

感谢楼上的帮助。 我已经修改好了。 all最后位置替换成return '\n'.join([str(.proxy) for in proxies]) 就可以

QvQ000 commented 3 months ago

api_list = [ {"url": "/get", "params": "type: ''https'|''", "desc": "get a proxy"}, {"url": "/pop", "params": "", "desc": "get and delete a proxy"}, {"url": "/delete", "params": "proxy: 'e.g. 127.0.0.1:8080'", "desc": "delete an unable proxy"}, {"url": "/all", "params": "type: ''https'|''", "desc": "get all proxy from proxy pool"}, {"url": "/count", "params": "", "desc": "return proxy count"}, {"url": "/free_api/", "params": "", "desc": "return all proxies in plain text format, one per line"} #这里我增加了这行代码 下面我增加了 @app.route('/free_api/') def free_api(): proxies = proxy_handler.getAll() # 获取所有代理 formatted_proxies = [proxy.to_dict['proxy'] for proxy in proxies] # 直接使用 'proxy' 键获取完整的 'IP:Port' return Response("\n".join(formatted_proxies), mimetype='text/plain') # 以纯文本形式返回代理列表 我乱改的 但是返回的是纯文本ip:port 一行一个 如果在windows上某些软件能正常读取api返回内容你需要将"\n".join改成"\r\n".join