使用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 3
。pip 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(含中文乱码处理方法)