我有一个名为test.html
的html文件,它有一个单词בדיקה
。
我打开test.html并使用以下代码块打印它的内容:
file = open("test.html", "r")
print file.read()
但它会打印??????
,为什么会发生这种情况,我该怎么办呢?
顺便说一句。当我打开文本文件时它很有效。
编辑:我试过这个:
>>> import codecs
>>> f = codecs.open("test.html",'r')
>>> print f.read()
?????
答案 0 :(得分:29)
import codecs
f=codecs.open("test.html", 'r')
print f.read()
尝试这样的事情。
答案 1 :(得分:8)
您可以使用' urllib'
阅读HTML页面 #python 2.x
import urllib
page = urllib.urlopen("your path ").read()
print page
答案 2 :(得分:5)
您可以使用以下代码:
from __future__ import division, unicode_literals
import codecs
from bs4 import BeautifulSoup
f=codecs.open("test.html", 'r', 'utf-8')
document= BeautifulSoup(f.read()).get_text()
print document
如果你想删除其间的所有空行并将所有单词作为字符串(也避免使用特殊字符,数字),那么还包括:
import nltk
from nltk.tokenize import word_tokenize
docwords=word_tokenize(document)
for line in docwords:
line = (line.rstrip())
if line:
if re.match("^[A-Za-z]*$",line):
if (line not in stop and len(line)>1):
st=st+" "+line
print st
*最初将st
定义为string
,例如st=""
答案 3 :(得分:4)
将codecs.open与编码参数一起使用。
import codecs
f = codecs.open("test.html", 'r', 'utf-8')
答案 4 :(得分:3)
我今天也遇到了这个问题。我使用Windows,系统语言默认为中文。因此,有人可能会类似地遇到此Unicode错误。只需添加encoding = 'utf-8'
:
with open("test.html", "r", encoding='utf-8') as f:
text= f.read()
答案 5 :(得分:1)
你可以简单地使用这个
import requests
requests.get(url)
答案 6 :(得分:0)
代码:
import codecs
path="D:\\Users\\html\\abc.html"
file=codecs.open(path,"rb")
file1=file.read()
file1=str(file1)
答案 7 :(得分:-2)
您可以在python3中使用' urllib' ,与
相同https://stackoverflow.com/a/27243244/4815313几乎没有变化。
#python3
import urllib
page = urllib.request.urlopen("/path/").read()
print(page)