使用python将某些网站的HTML保存在txt文件中

Posted

技术标签:

【中文标题】使用python将某些网站的HTML保存在txt文件中【英文标题】:Save HTML of some website in a txt file with python 【发布时间】:2014-08-09 10:33:39 【问题描述】:

我需要将任何网站的 html 代码保存在 txt 文件中,这是一个非常简单的练习,但我对此有疑问,因为有一个功能可以做到这一点:

import urllib.request

def get_html(url):
    f=open('htmlcode.txt','w')
    page=urllib.request.urlopen(url)
    pagetext=page.read() ## Save the html and later save in the file
    f.write(pagetext)
    f.close()

但这不起作用。

【问题讨论】:

您可以让浏览器保存页面的 HTML。为什么要这样做?有像wget 这样的程序(在 Unix/Linux 上,也可能在 OSX 上,以及作为 CygWin 的一部分的 Windows 上)可以下载完整的网站。 很多程序员使用python来下载url。我愿意。我想我可以雇一群人从浏览器中点击保存。我可以向他们发送电子邮件,告诉他们我想要哪些页面。但是 python 更便宜。 我遇到了一个奇怪的错误,比如:“No str, required bytes” 太棒了!问题是您需要将缓冲区转换为字符串形式。 Pagetext=page.read().decode() 可能就是您所需要的。这给了你 UTF8。 是的,你的权利!终于明白了,谢谢大家:D 【参考方案1】:

我使用Python 3pip install requests - 安装requests 库后,您可以将网页保存为txt 文件。

import requests

url = "https://***.com/questions/24297257/save-html-of-some-website-in-a-txt-file-with-python"

r = requests.get(url)
with open('file.txt', 'w') as file:
    file.write(r.text)

【讨论】:

可能还需要检查 status_code 以确保您没有遇到 http 404 或某些服务器错误。应该是http 200,ok=true【参考方案2】:

最简单的方法是使用urlretrieve:

import urllib

urllib.urlretrieve("http://www.example.com/test.html", "test.txt")

对于 Python 3.x,代码如下:

import urllib.request    
urllib.request.urlretrieve("http://www.example.com/test.html", "test.txt")

【讨论】:

谢谢!我已经完成了下一个方法,并且正在工作: import urllib2 def Obtener_Html(url): file("my_file.txt", "w").write(urllib2.urlopen(url).read()) if name == 'main': url=raw_input("给我说一个网站:") Obtener_Html("http://"+url)

以上是关于使用python将某些网站的HTML保存在txt文件中的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫中文小说网点查找小说并且保存到txt(含中文乱码处理方法)

使用Python将日文字符输出到文件

Python 从安全网站获取数据

是否可以将网站上的用户输入保存到 txt 文件中?

如何将 html 表格保存为图像以供客户保存在他们的计算机上

使用python在单个字符串中突出显示并保存多个单词