2016-07-12 17 views
1

필자는 HTML 파서를 작성하려고하지만 테스트하는 동안 웹 사이트를 매번 쿼리하지 않으므로 웹 사이트를 로컬로 HTML 파일로 저장했습니다.웹 대신 로컬 파일에서 HTML 파일을 열 때 디코딩하는 방법은 무엇입니까?

웹 사이트에서
urltext = urllib.request.urlopen(urlfile).read().decode("utf-8") 

직접 내가 올바른 구문 분석 stringto 얻을하지만 난 내 로컬 PC에서 열 때 잘못된 디코딩을 갖고있는 것 같아요 : 읽기

내가 사용

<span id="line845"></span>       </span><span>&lt;<span class="start-tag">h2</span> <span class="attribute-name">class</span>="<a class="attribute-value">article-title</a>"&gt;</span><span> 
<span id="line846"></span>           </span><span>&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">headline-intro</a>"&gt;</span><span>Intro:</span><span>&lt;/<span class="end-tag">span</span>&gt;</span><span> </span><span>&lt;<span class="start-tag">span</span> <span class="attribute-name">class</span>="<a class="attribute-value">headline</a>"&gt;</span><span>Main text</span><span>&lt;/<span class="end-tag">span</span>&gt;</span><span></span><span>&lt;/<span class="end-tag">h2</span>&gt;</span><span> 

을 원래는 다음과 같아야합니다.

<h2 class="article-title"> 
              <span class="headline-intro">Intro:</span> <span class="headline">Main Text</span></h2> 

어떤 아이디어가 잘못 되었나요?

고맙습니다

케빈

+0

수동으로 메모장에서 파일을 여는 경우 어떤 버전입니까? –

+0

gedit (또는 메모장에서도 같음)에 잘못된 버전이 있습니다. Libre Office에서 열면 괜찮습니다. – Kev

+0

웹 사이트의 소스 코드를 연 다음 libre office에 복사하여 HTML로 저장 한 것 같습니다. 나 맞아? 그게 작동하지 않습니다. HTML은 일반 텍스트 형식이며 libre office는 서식있는 텍스트 파일 (즉, 글꼴 정보, 텍스트 색 등)을 만듭니다. 이상한 "여분의"것들은 여분의 서식있는 텍스트 형식입니다. –

답변

3

당신은 잘못 HTML 파일을 다운로드하지만, 그것을 여는 당신의 방법은 올바른 보인다.

브라우저에서 웹 페이지의 소스 코드를 열고 Libre Office에 복사하여 붙여 넣고 Libre Office의 "HTML로 저장"기능을 사용하는 것 같습니다. HTML은 일반 텍스트 마크 업 형식이고 Libre Office는 리치 텍스트 워드 프로세서이므로 Libre Office는 글꼴, 크기, 색상, 장식, 이미지 등과 같은 정보를 파일에 저장하므로이 기능은 작동하지 않습니다 .

Libre Office의 "HTML로 저장"기능은 일반 문서를 웹 페이지로 변환하는 것으로, 문서에 입력 한 HTML 마크 업을 저장하지 않습니다.

적절한 방법으로 문서를 다운로드하려면 브라우저의 "저장"기능을 찾으십시오. 대부분의 브라우저에서 Ctrl/Cmd + 을 누르기 만하면됩니다. 작업이 끝나면 일반 텍스트 편집기 (예 : 메모장, Gedit 또는 텍스트 편집기)에서 파일을 열어 예상 한대로 표시되는지 확인하십시오.