如何存储urlopen的soucre代码?

嗨,我可以打印出网站的源代码,但我不能将读取的内容存储在变量中作为字符串,所以有这样做的余地吗?

选择 | 换行 | 行号
  1.  
  2. with urllib.request.urlopen(path) as url:
  3.     sourcecode = url.read()
  4.     print(sourcecode)#prints source code
  5.     sourcecode = storecode #i cant do this???
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
# 回答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设置为全局变量吗?

选择 | 换行 | 行号
  1. def s():
  2.   global s
  3.   s = urllib.request.urlopen(path).read()
  4.  
# 回答5


你把变量颠倒了。

选择 | 换行 | 行号
  1. with urllib.request.urlopen(path) as url:
  2.      sourcecode = url.read()
  3.      print(sourcecode)#prints source code
  4.      ##sourcecode = storecode #i cant do this?
  5.      storecode = sourcecode 
# 回答6


我已经找到了问题,谢谢你的帮助,问题是从url读取的东西没有存储为字符串。一旦我将变量转换为字符串,我就可以操作字符串再次感谢你的帮助。

标签: python

添加新评论