1

我正在尝试使用选择从此列表中选择一个随机 URL,但它不起作用。这是我的代码:

import urllib, urllib2, sys
num = sys.argv[1]
print 'Started'
phones = [
'http://1.1.1.6/index.htm,'
'http://1.1.1.5/index.htm,'
'http://1.1.1.4/index.htm,'
'http://1.1.1.3/index.htm,'
'http://1.1.1.2/index.htm,'
'http://1.1.1.1/index.htm'
]
from random import choice
data = urllib.urlencode({"NUMBER":num, "DIAL":"Dial", "active_line":1})
while 1:
    for phone in phones:

                         urllib2.urlopen(choice(phone),data) # make call
                         urllib2.urlopen(choice(phone)+"?dialeddel=0") # clear
logs

这是我得到的错误

File "p.py", line 21, in ?
    urllib2.urlopen(choice(phone),data) # make call
  File "/usr/lib64/python2.4/urllib2.py", line 130, in urlopen
    return _opener.open(url, data)
  File "/usr/lib64/python2.4/urllib2.py", line 350, in open
    protocol = req.get_type()
  File "/usr/lib64/python2.4/urllib2.py", line 233, in get_type
    raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: 5

任何帮助表示赞赏。谢谢!

4

2 回答 2

4

你的逗号在你的字符串里面。结果,您的电话变量是单个大字符串的列表。您的随机选择是为您提供该字符串中的单个字符。将其更改为:

phones = [
    'http://1.1.1.6/index.htm',
    'http://1.1.1.5/index.htm',
    'http://1.1.1.4/index.htm',
    'http://1.1.1.3/index.htm',
    'http://1.1.1.2/index.htm',
    'http://1.1.1.1/index.htm',
]

此外,您不应遍历电话,而只需使用random.choice(phones).

此外,您正在为两个 URL 调用选择不同的随机电话,我猜这不是您想要的。这是一个完整的重构代码。

import urllib, urllib2, sys, random

phones = [
    'http://1.1.1.6/index.htm',
    'http://1.1.1.5/index.htm',
    'http://1.1.1.4/index.htm',
    'http://1.1.1.3/index.htm',
    'http://1.1.1.2/index.htm',
    'http://1.1.1.1/index.htm',
]

num = sys.argv[1]
data = urllib.urlencode({"NUMBER": num, "DIAL": "Dial", "active_line": 1})
while 1:
    phone = random.choice(phones)
    urllib2.urlopen(phone, data) # make call
    urllib2.urlopen(phone + "?dialeddel=0") # clear logs
于 2013-02-03T01:01:15.343 回答
0

您可以尝试获取随机索引

import random
phones = [
'http://1.1.1.6/index.htm',
'http://1.1.1.5/index.htm',
'http://1.1.1.4/index.htm',
'http://1.1.1.3/index.htm',
'http://1.1.1.2/index.htm',
'http://1.1.1.1/index.htm',
]

index random.randrange(0, len(phones)-1)
phones[index]
于 2013-02-03T01:06:59.887 回答