python:读取web浏览器输出时打印空输出

2024-04-20 11:50:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的文件中有一组URL链接,我需要打开每个链接并获取输出,我需要将其存储在一个文件中。但如果我试图打印输出,空行就来了。 请找到下面的代码并帮助我

import urllib2

import webbrowser

with open('C:\\Users\\home\\Desktop\\11.txt','r') as fp:
    for line in fp:

        password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
        top_level_url = "https://facebook.com"
        password_mgr.add_password(None, top_level_url, "appsdev", "--omitted--")
        handler = urllib2.HTTPBasicAuthHandler(password_mgr)
        opener = urllib2.build_opener(handler)
        r=opener.open(top_level_url)
        r.read()
        print r.read()

Tags: 文件importurlread链接toppasswordopen
2条回答

在写入其他文件之前,将该内容赋给任何变量

比如

 out_data = r.read()
 new_file = open('file.txt','w')
 new_file.write(out_data)
 new_file.close()

也就是说,你的数据将被写入file.txt

如果您发布的代码是正确的,并且第二个r.read()不是打字错误,那么这是因为您有两次读取。你知道吗

对于类似文件的对象(如opener.open()的返回值),调用read()将返回整个内容并将当前位置设置为文件的结尾。对read()的后续调用将返回空字符串,因为光标已经位于文件的末尾。你知道吗

在你的代码里

r.read()  # This returns the entire contents
print r.read()  # Empty string

只需去掉第一个r.read()。你知道吗

相关问题 更多 >