如何在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
答案 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:
的末尾添加//
。