0

我正在编写这个 Python 程序,它从网页中提取一些信息,我需要使用 windows 命令行运行它。但我什至无法将原始 html 页面打印为字符串。我正在使用 Python 2.7

这是我的 Python 脚本:

#sys.py
import sys
import urllib

url = sys.argv[1]
f = urllib.urlopen(url)
print f.read()

当我尝试从 Windows 命令行运行它时: C...>sys.py "www.marinetraffic.com/ais/shipdetails.aspx?mmsi=311389000"

错误显示如下:

Traceback(most recent call last):
File "C:\...\sys.py", line 14 in <module>
  f = urllib.urlopen(url)
File "C:\Python27\lib\urllib.py", line 87, in urlopen
  return opener.open(url)
File "C:\Python27\lib\urllib.py", line 208, in open
  return getattr(self, name)(url) 
File "C:\Python27\lib\urllib.py", line 463, in open_file
  return self.open_local_file(url)
File "C:\Python27\lib\urllib.py", line 87, in open_loca_file
  raise IOError(e.errno, e.strerror, e.filename)
IOError: [Errno 2] The system cannot find the path specified: 'www.marinetraffic.com\\ais\\shipdetails.aspx?mmsi=311389000'

在 windows 环境下设置的 Python 应该没有任何问题,因为在命令行中传递参数时,我仍然可以打印出 sys.argv 列表。

这是'urllib'库的问题吗?

有没有其他方法可以使用 Windows 命令行运行它?

4

1 回答 1

0

我认为问题在于您指定网址的方式,它需要在开头包含 http:// 部分。

当我打字时它对我有用

python sys.py http://www.google.com/

但失败了

python sys.py www.google.com

(请注意,我将 linux 与 python 2.7 一起使用,但我认为这对您来说可能是同样的问题)

于 2013-06-11T07:45:37.710 回答