日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html2txt

發(fā)布時間:2023/12/31 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html2txt 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們已經(jīng)利用larbin從網(wǎng)上抓取了六千多個HTML文件,在使用clucene建立索引之前,我們還需要把HTML文件中的各種無用的標簽去掉,形成只包含有實際內(nèi)容的文檔.html2text就是這樣一個工具.

其實Linux下兩種html2text工具:

Python Module for converting HTML to text

我們先說用Python寫的那個,如果你會寫點Python,我想你一定會選擇這個.如果不使用Ubuntu軟件中心,你需要這樣來手動安裝:

1)下載htmltotext-0.7.3.tar.gz

2)解壓,進入解壓后的文件

3)安裝Python

$ sudo apt-get install python-dev

4)安裝Python的 setuptools模塊

# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py

5)安裝html2txt

#?python setup.py install

6)測試安裝是否成功

#?python eggsetup.py test

Linux html2text

事實上我完全不懂Python,所以我用的是第一個.

用法:
? html2text -help
? html2text -version
? html2text [ -unparse | -check ] [ -debug-scanner ] [ -debug-parser ] \
? ? ?[ -rcfile <file> ] [ -style ( compact | pretty ) ] [ -width <w> ] \

??? [ -o <file> ] [ -nobs ] [ -ascii ] [ <input-url> ] ...
Formats HTML document(s) read from <input-url> or STDIN and generates ASCII
text.
? -help? ? ? ? ? Print this text and exit
? ?顯示本頁文本并退出
? -version? ? ? ?Print program version and copyright notice
? -unparse? ? ? ?Generate HTML instead of ASCII output
? -check? ? ? ? ?Do syntax checking only         做語法檢查
? -debug-scanner Report parsed tokens on STDERR (debugging)
? -debug-parser? Report parser activity on STDERR (debugging)
? -rcfile <file> Read <file> instead of "$HOME/.html2textrc"
? -style compact Create a "compact" output format (default)
? -style pretty? Insert some vertical space for nicer output
? -width <w>? ? ?Optimize for screen widths other than 79
? -o <file>? ? ? Redirect output into <file>
將輸入重新輸出至 <file>
? -nobs? ? ? ? ? Do not use backspaces for boldface and underlining
? ?? ?? ? 這個選項要用著。不然的話轉(zhuǎn)換后的文件 里會有很多沒用的符號??
? -ascii? ? ? ? ?Use plain ASCII for output instead of ISO-8859-1

html轉(zhuǎn)換成txt后編碼沒變。

指轉(zhuǎn)換就要使用腳本了.

如果你會shell:

#!/bin/bash ls *.html |while read i do html2text -o $i.txt -nobs $i done

當然我還是慣用Perl:

#!/usr/bin/perl -w use strict; use File::Find; my $path=shift @ARGV; #把$path下面的所有.html文件去掉HTML標簽,并加上.txt后綴 sub html2txt{if(-e $File::Find::name){if(-f $File::Find::name){system "html2text","-o","$File::Find::name.txt", $File::Find::name;}elsif(-d $File::Find::name){next if $File::Find::name=~/^\./;}}else{print "$File::Find::name does not exist.\n";} } find(\&html2txt,$path); 麻煩并沒有至此結(jié)束.生成的.txt文件用gedit打開是亂碼,當然如果你打開時指定utf-8編碼是可轉(zhuǎn)以的,但六千多個文件我不能都這么干吧.

方法1.

使用vim打開,但是需要更改.vimrc

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

這樣,就可以讓vim自動識別文件編碼(可以自動識別UTF-8或者GBK編碼的文件),其實就是依照fileencodings提供的編碼列表嘗試,如果沒有找到合適的編碼,就用latin-1(ASCII)編碼打開。

方法2.

iconv -f GBK -t UTF-8 file1 -o file2

就是把原文件從GBK編碼轉(zhuǎn)換這UTF-8編碼.

那要是我不知道原文件是什么編碼,也不知道應該把它轉(zhuǎn)換為什么編碼呢?

查看文件編碼:

  1)直接在vim中

  :set fileencoding

  2)使用enca工具,當然要先安裝該工具

enca -L zh_CN file 檢查文件的編碼

enca -L zh_CN -x UTF-8 file 將文件編碼轉(zhuǎn)換為”UTF-8″編碼

enca -L zh_CN -x UTF-8 < file1 > file2 如果不想覆蓋原文件可以這樣

除了有檢查文件編碼的功能以外,”enca”還有一個好處就是如果文件本來就是你要轉(zhuǎn)換的那種編碼,它不會報錯,還是會print出結(jié)果來, 而”iconv”則會報錯。這對于腳本編寫是比較方便的事情。

要轉(zhuǎn)換為什么編碼:

這要看你下一步用什么中文分詞工具了,ICTCLAS 3.0 2009 共享版只支持GBK編碼,因此,如果是UTF-8編碼的字符串,可以先用iconv函數(shù)轉(zhuǎn)換成GBK編碼,再用httpcws進行分詞處理,最后轉(zhuǎn)換回UTF-8編碼。SCWS 支持 GBK,UTF-8,BIG5 等漢字編碼,切詞效率高。

另外linux下還一個工具是專門對文件名進行編碼轉(zhuǎn)換的,這主要是解決文件在Windows和Linux之間移動的時候文件亂碼的問題.

令人沮喪的是

orisun@zcypc:~$ enca f00004.html.txt

Universal transformation format 8 bits;

UTF-8??Surrounded by/intermixed with non-text data

它說我的文件不光是utf8,還有一些" non-text data",gedit用utf8打開時還是亂碼.

解決辦法,這是我睡了一覺想出來的:既然用vim可以成功打開,那是否可以直接cat到終端呢?然后再用管道把stdout送給一個文件.

首先cat f00004.html.txt,在終端可以正確顯示中文.

如果你的終端還是不能正常 顯示中文,sudo apt-get install zhcon

cat f00004.html.txt 1>file

打開file發(fā)現(xiàn)還是亂碼.

有一個html2text的網(wǎng)站,可以在線試用一下:http://www.aaronsw.com/2002/html2text/

Lynx

用html2text工具后還進行一步編碼的轉(zhuǎn)換,麻煩,所有想到了用Lynx.這是一個在字符界面查看網(wǎng)頁的瀏覽器,當然看不到圖片.由于在Lynx上顯示的已經(jīng)是網(wǎng)頁的文本,去除了html標簽和各種腳本代碼,我們再把Lynx界面上的內(nèi)容輸出到文件里就可以了.

先要設(shè)置一下使你的Lynx支持中文,要先讓配置文件lynx.cfg(locate一下)可更改,sudo chmod u+w lynx.cfg.然后運行l(wèi)ynx, O選項,設(shè)置語言.或者直接更改 lynx.cfg.

CHARACTER_SET:Chinese? ASSUME_CHARSET:Chinese PREFERRED_LANGUAGE:zh_CN

lynx -raw -dump <url> > plain.txt?
或者?
cat <file> | lynx -raw -dump?-stdin >plain.txt

Links和w3m 和Lynx類似的軟件,不過同樣默認情況下不支持中文,看來國人亟待為GNU作出自己的貢獻. ------------------------------------- 最后不管了,反正把txt文件送給SCWS后它還是可以正常分詞,分詞結(jié)果用vim或cat打開都沒問題.但愿下一步用clucene的時候支持復雜的編碼.

總結(jié)

以上是生活随笔為你收集整理的html2txt的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。