54978


現在、複数のproxyアクセスのみが許された連番ページをダウンロードしています。

[code]

    seq 400 100000 | xargs -P100 -n1 -t -I {} \
    curl -s -o {}.html --retry 10 -x 192.168.20.3:1080 "https://192.168.1.5/page/"{}".php"'
    
[/code]

又、別のファイルには以下のようにproxyリストが記述されており

[code]

    192.168.20.3:1080
    192.168.19.5:1080
    ...
    192.168.18.4:1080
    
[/code]

1スレッド毎にランダムなproxyからアクセスさせたいのですが  
バッククォートを使用した方法

[code]

    seq 400 100000 | xargs -P100 -n1 -t -I {} \
    curl -s -o {}.html --retry 10 -x `shuf -n1 /home/home/proxy.list` "https://192.168.1.5/page/"{}".php"
    
[/code]

`bash -c`を使用した方法等

[code]

    seq 400 100000 | xargs -P100 -n1 -t -I {} \
    bash -c 'curl -s -o {}.html --retry 10 -x $(shuf -n1 /home/home/proxy.list) https://192.168.1.5/page/{}.php'
    
[/code]

上手くいきません。いい方法をご教授いただけますでしょうか。  
よろしくお願いします。


CC BY-SA 4.0
2019-05-15T08:37:40.177
54974
2019-05-15T12:12:57.187
34331
question
curl shell
xargs を使用した curl にてランダムなproxyを付与したい


自己解決しました。  
proxychains-ng にてランダムなproxyを与え

[code]

    random_chain
    chain_len = 1
    
    [ProxyList]
    http 192.168.20.3 1080
    http 192.168.19.5 1080
    ...
    http 192.168.18.4 1080
    
[/code]

以下の様に実行する事でランダムなproxyになる事を確認しました。

[code]

    seq 400 100000 | xargs -P100 -n1 -t -I {} \
    proxychains curl -s -o {}.html --retry 10 "https://192.168.1.5/page/"{}".php"
    
[/code]

ただし、proxychains-ngではオーバーヘッドが大きいです。


CC BY-SA 4.0
2019-05-15T09:32:15.040
54976
2019-05-15T09:32:15.040
34331
54974
answer


下記のように書くと希望通りに動くと思います。

[code]

    seq 400 100000 | xargs -P100 -n1 -t \
    sh -c 'curl -s -o "${1}.html" --retry 10 -x "$(shuf -n1 /home/home/proxy.list)" "https://192.168.1.5/page/${1}.php"' _
    
[/code]


CC BY-SA 4.0
2019-05-15T12:12:57.187
54978
2019-05-15T12:12:57.187
25936
54974
answer