关于urllib AttributeError:'module'对象没有属性'urlopen'

时间:2010-12-21 07:11:38

标签: python

import re
import string
import shutil
import os
import os.path
import time
import datetime
import math
import urllib
from array import array
import random

filehandle = urllib.urlopen('http://www.google.com/') #open webpage
s = filehandle.read() #read 
print s #display

#what i plan to do with it once i get the first part working
#results = re.findall('[<td style="font-weight:bold;" nowrap>$][0-9][0-9][0-9][.][0-9][0-9][</td></tr></tfoot></table>]',s)
#earnings = '$ '
#for money in results:
#earnings = earnings + money[1]+money[2]+money[3]+'.'+money[5]+money[6]
#print earnings
#raw_input()

这是我到目前为止的代码。现在我看了所有其他论坛提供解决方案,如脚本的名称,这是parse_Money.py,我已经尝试用urllib.request.urlopen和我尝试在python 2.5,2.6上运行它,和2.7。如果有人有任何建议,那将非常受欢迎,谢谢大家! --Matt

--- 修改 --- 我也试过这个代码并且它有效,所以我认为它有某种语法错误,所以如果有任何一个有敏锐眼光的人都可以指出它,我会非常感激。

import shutil
import os
import os.path
import time
import datetime
import math
import urllib
from array import array
import random
b = 3

#find URL
URL = raw_input('Type the URL you would like to read from[Example: http://www.google.com/] :')



while b == 3:
    #get file name
    file1 = raw_input('Enter a file name for the downloaded code:')
    filepath = file1 + '.txt'
    if os.path.isfile(filepath):
        print 'File already exists'
        b = 3
    else:
        print 'Filename accepted'
        b = 4

file_path = filepath
#open file
FileWrite = open(file_path, 'a')


#acces URL
filehandle = urllib.urlopen(URL)

#display souce code
for lines in filehandle.readlines():
    FileWrite.write(lines)
    print lines
print 'The above has been saved in both a text and html file'

#close files
filehandle.close()
FileWrite.close()

3 个答案:

答案 0 :(得分:1)

it appears urlopen模块在​​urllib.request模块中可用,而在urllib模块中没有,因为您期望。

经验法则 - 如果您获得AttributeError,则特定模块中不存在该字段/操作。

编辑 - 感谢AndiDog指出 - 这是一个对Py 3.x有效的解决方案,不适用于Py2.x!

答案 1 :(得分:0)

urlopen函数实际上在urllib2模块中。尝试导入urllib2并使用urllib2.urlopen

答案 2 :(得分:0)

我看到你使用的是Python2,或者至少打算使用Python2。 Python2中的urllib和urllib2都提供了urlopen辅助函数。

您需要执行此操作,针对正确版本的python执行此脚本

C:\Python26\python.exe yourscript.py