如何使用随机代理/ UA从文件制作annonimizer?

时间:2014-01-11 13:14:11

标签: python python-2.7 mechanize

我试图用python创建一个匿名者,我不确定要使用哪个“循环”(因为你可以告诉我对这一切仍然很新)

到目前为止,我有这个:

import mechanize
import cookielib


br=mechanize.Browser()
br.set_handle_robots(False)

proxylist=open("/home/xyz/proxylist.txt","r+")
ualist=open=("/home/xyz/ualist.txt","r+")



def changeuseragent(useragent):
    br.addheaders=[('User-agent',useragent)]

def addproxy(proxy):
    br.set_proxies({"http":proxy})

def changecookie():
     cookie_jar = cookielib.LWPCookieJar()
     br.set_cookiejar(cookie_jar)

changeuseragent(useragent)
addproxy(proxy)
changecookie()
z=br.open("http://www.whatsmyuseragent.com")
print z.read()

在我有上面两个“打开文件”行之前,我有两行代理和UserAgent值,所以我删除了那些并打开了两个文件,我用每种类型的几个选项(每行是1个选项)

我想要的是编写一个循环,这样每次运行它时,它都会从列表中使用随机代理和useragent访问网站。 我遇到的主要问题是我不确定如何构建它,如果我应该使用while Trueif或甚至try

TY!

1 个答案:

答案 0 :(得分:2)

要获取文件行:

lines = open(path,"r").readlines()

要从中选择一个随机元素,比如一行:

import random #preferably at the top of the script
myline = random.choice(lines)

删除有害换行符和空格行:

cleanline = line.strip()

重复你的任务:

br=mechanize.Browser()
br.set_handle_robots(False)

def open_page(url,agent,proxy):
    changeuseragent(agent.strip()) # pass br here, or move above lines out
    addproxy(proxy.strip()) # into the global scope
    changecookie()

    return br.open(url)

# if script is executed, not imported. This line below is common magic.
if __name__=="__main__": 
    # TODO: open your files
    somelines = file(path,"r").readlines()
    #
    running = True
    while running:
        # TODO: select a line
        oneline = random.choice(lines)
        secondline = random.choice(otherlines)
        #
        f = open_page(your_url,agentline,proxyline)
        print f.read() #<or do whatever you wish
        f.close() #<not necessary

        running = raw_input("x and enter to exit: ").lower().startswith("x")
    # And on it goes.

编辑:我添加了一些伪代码。您需要修改或多或少明显的行。

关于主题:上面的循环在交互式控制台脚本中非常常见。