Python - 运行查询到站点,并在std中打印结果

时间:2016-05-08 00:38:40

标签: python python-3.x

我一直在尝试将用于检查IP地址的python脚本编写到www.blacklistalert.com。目标是在一个或多个IP地址上运行脚本作为标准输入。然后在命令行上打印站点的标准输出。

import urllib.parse
import urllib.request

ip = str(urllib.request'[$1]')

url = 'http://www.blacklistalert.org/'
values = { 'query': '$1' }

data = urllib.parse.urlencode(values)
url = '?'.join([url, data])
req = urllib.request.Request(url, binary_data)
response = urllib.request.urlopen(req)
the_page = response.read()

print (the_page)

我遇到了将查询发送到页面并获取结果的问题,这些结果来自单独的页面。我目前收到错误:

ip = str(urllib.request'[$1]')
SyntaxError: invalid syntax

运行IP地址查询的最佳方法是什么,并在标准输出中获得响应?提前谢谢。

1 个答案:

答案 0 :(得分:0)

Python不是bash,并且不会将stdin上的参数自动处理为$1之类的变量(提示:Python中使用的唯一位置$是基于美元处理货币时)。相反,Python将命令行参数放在sys.argv列表中。您可以从那里读取它们(sys.argv[0]是脚本的名称,sys.argv[1]等等是命令行参数 - 阅读完整故事的文档),或者使用像{{3我推荐的模块。还有更多的代码,但最终还是值得的。