将HTML源代码保存到文件

时间:2012-04-01 20:36:05

标签: python-3.x

如何在Python 3中将网站的源代码复制到文本文件中?

编辑: 为了澄清我的问题,这就是我所拥有的:

import urllib.request

def extractHTML(url):
    f = open('temphtml.txt', 'w')
    page = urllib.request.urlopen(url)
    pagetext = page.read()
    f.write(pagetext)
    f.close()

extractHTML('http:www.google.com')

我为f.write()函数收到以下错误:

builtins.TypeError: must be str, not bytes

3 个答案:

答案 0 :(得分:2)

import urllib.request
site = urllib.request.urlopen('http://somesite.com')
data = site.read()
file = open("file.txt","wb") #open file in binary mode
file.writelines(data)
file.close()

未经测试但应该可以使用。

编辑:已更新为python3

答案 1 :(得分:0)

  

可能你想创造类似的东西:

import urllib.request

class ExtractHtml():

    def Page(self):

        print("enter the web page name starting with 'http://': ")
        url=input()
        site=urllib.request.urlopen(url)
        data=site.read()
        file =open("D://python_projects/output.txt", "wb")
        file.write(data)
        file.close()






w=ExtractHtml()
w.Page()

答案 2 :(得分:0)

试试这个。

import urllib.request
def extractHTML(url):
    urllib.request.urlretrieve(url, 'temphtml.txt')

这更容易,但如果你仍然想这样做。这是解决方案:

import urllib.request

def extractHTML(url):
    f = open('temphtml.txt', 'w')
    page = urllib.request.urlopen(url)
    pagetext = str(page.read())
    f.write(pagetext)
    f.close()

extractHTML('https://www.google.com')

您的脚本发出错误消息,说明它必须是字符串。只需使用str()将字节转换为字符串。

接下来我得到一个错误,说没有主持人。 Google is a secured site so https: not http:,最重要的是,您忘记在https:的末尾添加//