找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3321|回复: 5

[已解决] 短信URL的参数替换

1

主题

4

帖子

4

积分

贫民

积分
4
hogan 发表于 2017-11-6 03:15:36 | 显示全部楼层 |阅读模式
#!/bin/python
#coding:UTF-8
import urlparse, copy, urllib

path='/root/pythondir/phoneNo.txt'
#path存的是txt文件的路径
phoneNo=[]
#初始化lie列表
file = open(path)
while 1:
    lines = file.readlines()
    if not lines:
        break
    for line in lines:
          line=line.replace('\n','').split(",")
          phoneNo.append(line[0])
print phoneNo

def url_values_replace(sourceURL,values):
    ret = []
    u = urlparse.urlparse(sourceURL)
    qs = u.query
    pure_url = sourceURL.replace('?'+qs, '')
    qs_dict = dict(urlparse.parse_qs(qs))
    for val in values:
        for k in qs_dict.keys():
            tmp_dict = copy.deepcopy(qs_dict)
            tmp_dict[k]= val
            tmp_qs = urllib.unquote(urllib.urlencode(tmp_dict))
            ret.append(pure_url + "?" + tmp_qs)
    return ret

sourceURL="http://192.168.110.110:13013/cgi-bin/sendsms?username=test&password=test123&to=<inputPhoneNo>&text=test000&from=companyName"
actualURL = url_values_replace(sourceURL, phoneNo)
for pure_url in actualURL:
    print pure_url
sendURL = urllib.urlopen(pure_url)
print sendURL
file.close
sendURL.close()



现在的问题是url_values_replace这块我在网上找的例子但是不符合我的需求,我的需求是将sourceURL中的<inputPhoneNo>替换成phoneNo.txt的手机号码。
我是小白,第一次写,希望有大神帮帮忙,谢谢!

回复

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
hogan  楼主| 发表于 2017-11-7 03:17:49 | 显示全部楼层
最终成果,感谢大神的帮忙!!!

  1. #!/bin/python
  2. #coding:UTF-8
  3. import urlparse, copy, urllib

  4. path='/root/pythondir/phoneNo.txt'
  5. #path存的是txt文件的路径
  6. phoneNo=[]
  7. #初始化lie列表
  8. file = open(path)
  9. while 1:
  10.     lines = file.readlines()
  11.     if not lines:
  12.         break
  13.     for line in lines:
  14.           line=line.replace('\n','').split(",")
  15.           phoneNo.append(line[0])

  16. def url_values_replace(sourceURL,values):
  17.     return [ sourceURL.replace('<inputPhoneNo>',phone) for phone in values ]

  18. sourceURL="http://192.168.110.110:13013/cgi-bin/sendsms?username=test&password=test&to=<inputPhoneNo>&text=test+123&from=companyName"
  19. actualURL = url_values_replace(sourceURL, phoneNo)
  20. for pure_url in actualURL:
  21.     actualURL = url_values_replace(sourceURL, phoneNo)
  22.     sendURL = urllib.urlopen(pure_url)
  23. print sendURL
  24. file.close
  25. sendURL.close()
复制代码
回复 支持 1 反对 0

使用道具 举报

2

主题

219

帖子

219

积分

版主

Rank: 7Rank: 7Rank: 7

积分
219

热心会员默默耕耘优秀版主

剑心无痕 发表于 2017-11-6 10:19:11 | 显示全部楼层
sourceURL="http://192.168.110.110:13013/cgi-bin/sendsms?username=test&password=test123&to=%s&text=test000&from=companyName"
actualURL = []
for i in phoneNo:
    actualURL .append(sourceURL % i)
回复 支持 反对

使用道具 举报

0

主题

5

帖子

5

积分

贫民

积分
5
zhnglicho 发表于 2017-11-6 15:18:49 | 显示全部楼层
  1. def url_values_replace(sourceURL,values):
  2.     return [ sourceURL.replace('<inputPhoneNo>',phone) for phone in values ]
复制代码


不知道你想要什么,如果只是替换url中的 <inputPhoneNo>, 以上代码可以实现
回复 支持 反对

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
hogan  楼主| 发表于 2017-11-7 03:13:02 | 显示全部楼层
zhnglicho 发表于 2017-11-6 15:18
不知道你想要什么,如果只是替换url中的 , 以上代码可以实现

非常感谢,这个实现了我的需求。太感谢了!!!!
回复 支持 反对

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
hogan  楼主| 发表于 2017-11-7 03:16:05 | 显示全部楼层
  1. #!/bin/python
  2. #coding:UTF-8
  3. import urlparse, copy, urllib

  4. path='/root/pythondir/phoneNo.txt'
  5. #path存的是txt文件的路径
  6. phoneNo=[]
  7. #初始化lie列表
  8. file = open(path)
  9. while 1:
  10.     lines = file.readlines()
  11.     if not lines:
  12.         break
  13.     for line in lines:
  14.           line=line.replace('\n','').split(",")
  15.           phoneNo.append(line[0])

  16. def url_values_replace(sourceURL,values):
  17.     return [ sourceURL.replace('<inputPhoneNo>',phone) for phone in values ]

  18. sourceURL="http://192.168.110.110:13013/cgi-bin/sendsms?username=test&password=test&to=<inputPhoneNo>&text=test+123&from=companyName"
  19. actualURL = url_values_replace(sourceURL, phoneNo)
  20. for pure_url in actualURL:
  21.     actualURL = url_values_replace(sourceURL, phoneNo)
  22.     sendURL = urllib.urlopen(pure_url)
  23. print sendURL
  24. file.close
  25. sendURL.close()
复制代码


最终成果,感谢大神的帮忙
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表