使用python3将html内容保存到txt文件中

时间:2017-11-27 04:11:39

标签: python

我已经厌倦了搜索和尝试重复错误的代码,我真的希望有人能帮助我解决这个问题。 我的问题很简单 我试图使用python在txt文件中保存html代码,这里是我使用的代码:

from urllib.request import urlopen as uReq
url1 = 'http://www.marmiton.org/recettes/menu-de-la-semaine.aspx'
page = uReq(url1).read().decode()
f = open("test.html", "w")
f.write(page)
f.close()

但它给了我以下错误:

  

UnicodeEncodeError:' charmap'编解码器无法编码字符' \ u2665'在位置416224:字符映射到

3 个答案:

答案 0 :(得分:1)

以下是更新的解决方案:

Python 2.x:

import urllib

url1 = 'http://www.marmiton.org/recettes/menu-de-la-semaine.aspx'
page = urllib.urlopen(url1).read()
f = open("./test1.html", "w")
f.write(page)
f.close()

Python 3.x:

import urllib.request
import shutil

url1 = 'http://www.marmiton.org/recettes/menu-de-la-semaine.aspx'
page = urllib.request.urlopen(url1)
print(page)
f = open("./test2.html", "wb")
shutil.copyfileobj(page, f)
f.close()

您需要使用urllib来帮助您完成此任务。

答案 1 :(得分:0)

你应该尝试使用request和bs4(BeautifulSoup)

from bs4 import BeautifulSoup
import requests
r = requests.get("https://stackoverflow.com/questions/47503845/save-html-content-into-a-txt-file-using-python")
data = r.text
soup = BeautifulSoup(data)
print(soup)
with open ('/tmp/test.html', 'a') as f:
    f.write(str(soup))

答案 2 :(得分:0)

你提到不使用.decode()方法会给你一个类型错误。您是否尝试获取HTML内容并将其作为字符串传递给write()方法。您可以找到用三引号括起HTML内容的方法,因此您将其作为多行字符串传递。