嗨,我可以打印出网站的源代码,但我不能将读取的内容存储在变量中作为字符串,所以有这样做的余地吗?
-
- with urllib.request.urlopen(path) as url:
- sourcecode = url.read()
- print(sourcecode)#prints source code
- sourcecode = storecode #i cant do this???
-
-
-
-
-
-
# 回答1
从您的代码中可以看出,您使用的是Python3.x。因为我没有安装Python3,所以我无法测试您的代码。您的问题会不会与代码执行的上下文有关?文件对象__exit__()方法是否可能是垃圾回收局部变量
源码
?只是猜测而已。
试着执行
S=urllib.quest.urlOpen(Path).Read()
不使用WITH语句
# 回答2
嗨,谢谢你的帮助,我试过了,没有with语句,它仍然不起作用,我似乎只能从正在阅读的内容中打印出来,仅此而已
我的代码相当简单,它只要求用户输入URL,然后从之后输入的URL中读取源代码,然后我想要将读取的内容存储到字符串变量中以供进一步操作,但我还没有想出一种方法来做到这一点。
# 回答3
根据PYTHON文档,
Urllib.quest.urlOpen(url[,data][,timeout])
返回一个类似文件的对象,其中定义了两个附加方法。如您所知,文件对象的
朗读
方法以字符串形式返回文件内容。我一直在想,您可能正在定义一个在全局范围内不可用的局部变量。尝试使用GLOBAL语句创建全局变量。
# 回答4
对不起,您的意思是将%s设置为全局变量吗?
- def s():
- global s
- s = urllib.request.urlopen(path).read()
-
# 回答5
你把变量颠倒了。
- with urllib.request.urlopen(path) as url:
- sourcecode = url.read()
- print(sourcecode)#prints source code
- ##sourcecode = storecode #i cant do this?
- storecode = sourcecode
# 回答6
我已经找到了问题,谢谢你的帮助,问题是从url读取的东西没有存储为字符串。一旦我将变量转换为字符串,我就可以操作字符串再次感谢你的帮助。