0

これは少し奇妙な質問ですが、私はできる限り最善を尽くします。私はプロキシを使用してスクリプトを作成する作業を行っていますが、その一部を自動化する際に問題が発生しました。これは、必要なすべての最後の部分であるため、完了です。

例:この形式のプロキシのリストが.txtファイルに保存されているとします。

110.138.183.60:8080
110.138.20.67:8080
110.138.208.116:8008
110.138.237.80:3128
110.138.248.17:8080
110.138.248.78:80
110.139.182.234:8080
ect ect ect...

このスクリプトの最初の部分は、それらをランダム化する必要があるため、すべてを異なる順序で混ぜ合わせますが、現在のようにすべてが1行になるようにします。

それらをランダム化した後の2番目の部分。次に、ランダム化されたプロキシの最初の99を取得し、99番目以降のプロキシを無視して、この形式で1行に移動します(|で区切られ、最初または最後に1つありません。)

110.138.183.60:8080|110.138.208.116:8008|110.138.237.80:3128|110.138.248.17:8080|110.138.248.78:80|110.139.182.234:8080|110.138.20.67:8080

3番目の部分は、ファイル内の行を編集および置換するために、この新しいプロキシ行が必要なことです。この行は現在、次のようになります。

user_pref("extensions.proxytool.http_proxies", "129.59.26.40:8909|87.106.143.132:3128|85.17.121.205:9090|88.85.125.78:8080|80.82.150.82:8080");

その行にプロキシが表示されている場合は、それらを先ほど作成したプロキシの新しいバッチに置き換える必要があります。

次のような最終結果:

...
user_pref("extensions.proxytool.clear_cookies_on_new_window", true);
user_pref("extensions.proxytool.firstrun", false);
user_pref("extensions.proxytool.http_proxies", "110.138.183.60:8080|110.138.208.116:8008|110.138.237.80:3128|110.138.248.17:8080|110.138.248.78:80|110.139.182.234:8080|110.138.20.67:8080");
user_pref("extensions.proxytool.proxy_type", "http");
user_pref("extensions.proxytool.referer", "default");
...

私が必死でなかったかどうかはあまり尋ねません。私はプロジェクトを完了する前に、文字通りプロジェクトの最後の髪の毛にいます。どんな助けでも大歓迎です!前もって感謝します!

編集:スクリプトが完了しました。クレジットはZackBloomに助けを求めて行きます!Pythonスクリプトがどのように機能するかについて少し怠惰になりましたが、代わりに空のプロキシ行を使用してデフォルトの設定ファイルを作成したので、Pythonスクリプトの外部で、デフォルトの設定ファイルがプログラムにコピーされ、Pythonスクリプトがコピーされます。これは魔法であり、「プロキシはここにあります」という行を新しくコンパイルされたリストに置き換えます。もう一度ザックに感謝します!

from random import sample

with open("C:/Users/USERACCOUNT/test/today.txt") as proxy_file:
    proxies = [proxy.strip() for proxy in proxy_file.readlines()]

    proxies = sample(proxies, min(len(proxies), 99))

    proxy_str = "|".join(proxies)

import fileinput
import sys

def replaceAll(file,searchExp,replaceExp):
    for line in fileinput.input(file, inplace=1):
        if searchExp in line:
            line = line.replace(searchExp,replaceExp)
        sys.stdout.write(line)

replaceAll('C:/Users/USERACCOUNT/test/prefs.js','proxiesgohere',proxy_str)
4

1 に答える 1

1

リストの作成は非常に簡単です。

from random import sample

with open("proxy_list.txt") as proxy_file:
    proxies = [proxy.strip() for proxy in proxy_file.readlines()]

    proxies = sample(proxies, min(len(proxies), 99))

    proxy_str = "|".join(proxies)

次に、テンプレート言語(std libに1つあります:http://docs.python.org/library/string.html#template-strings)を使用して、文字列を含む出力ファイルを作成する必要があります。

于 2011-10-15T04:07:08.673 に答える