Python论坛  - 讨论区

标题:[python-chinese] 如何用python过滤html标签和准确的提取内容

2006年04月07日 星期五 15:56

张冰 simpleboy.love at gmail.com
Fri Apr 7 15:56:33 HKT 2006

大家好:

我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060407/a9c3bb5d/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月07日 星期五 16:09

Zoom Quiet zoom.quiet at gmail.com
Fri Apr 7 16:09:04 HKT 2006

On 4/7/06, 张冰 <simpleboy.love at gmail.com> wrote:
> 大家好:
>
> 我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
>
这不关Python 的事儿,纯是 正则表达式的事儿!
http://cvs.woodpecker.org.cn/svn/woodpecker/zqlib/tangle/zoomq/H2X/Xfilter.py
是我以前 html 2 xhtml 的练习可以参考

http://cvs.woodpecker.org.cn/svn/woodpecker/zqlib/tangle/zoomq/HtmlCntFilter/cntFilter.py
是从新浪抓文章后的过滤小工具,可以参考…………

> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request at lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>
>


--
"""Time is unimportant, only life important!
blogging  :  http://blog.zoomquiet.org/pyblosxom/
wiki enter:   http://wiki.woodpecker.org.cn/moin/ZoomQuiet
in douban:  http://www.douban.com/people/zoomq/
"""

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月07日 星期五 16:09

imcs ee imcsee at gmail.com
Fri Apr 7 16:09:46 HKT 2006

from sgmllib import SGMLParserclass html2txt(SGMLParser):
        def reset(self):
                self.text = ''
                SGMLParser.reset(self)
        def handle_data(self, text):
                self.text+=text
*if* __name__ == "__main__":
        parser = html2txt()
        text = file('test.htm','rb').read()
        parser.feed(text)
        parser.close
        print parser.text

如果不是一定需要正则表达式的话。
如果只是取得页面内容,可以试试这个,如果有别的需求,可以看看SGMLParser。


On 4/7/06, 张冰 <simpleboy.love at gmail.com> wrote:
>
> 大家好:
>
> 我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060407/d4d91a29/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月07日 星期五 16:18

Slowness Chen chenzh at bhh.com.cn
Fri Apr 7 16:18:23 HKT 2006

try Beautifulsoap
  ----- Original Message ----- 
  From: 张冰
  To: python-chinese at lists.python.cn
  Sent: Friday, April 07, 2006 3:56 PM
  Subject: [python-chinese] 如何用python过滤html标签和准确的提取内容


  大家好:
        我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!



------------------------------------------------------------------------------


  _______________________________________________
  python-chinese
  Post: send python-chinese at lists.python.cn
  Subscribe: send subscribe to python-chinese-request at lists.python.cn
  Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
  Detail Info: http://python.cn/mailman/listinfo/python-chinese 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060407/60d1bedc/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月07日 星期五 16:49

张冰 simpleboy.love at gmail.com
Fri Apr 7 16:49:59 HKT 2006

之前,我用java写过一个类似的程序,只是java的文本处理效率太低了,尤其用到正则表达式的时候,所以我尝试用python来解决类似问题。非常感谢各位的帮忙,你们提供的代码对我有很高的参考价值,谢谢了!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060407/c903d8e8/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月07日 星期五 17:32

员旭鹏 recordus at gmail.com
Fri Apr 7 17:32:31 HKT 2006

这种方法可以提取出页面上的文本,不过好像javascript等一些客户端脚本过滤不掉。

在06-4-7,imcs ee <imcsee at gmail.com> 写道:
>
> from sgmllib import SGMLParser
> class html2txt(SGMLParser):
>         def reset(self):
>                 self.text = ''
>                 SGMLParser.reset(self)
>         def handle_data(self, text):
>                 self.text+=text
>
> *if* __name__ == "__main__":
>         parser = html2txt()
>         text = file('test.htm','rb').read()
>         parser.feed(text)
>         parser.close
>         print parser.text
>
> 如果不是一定需要正则表达式的话。
> 如果只是取得页面内容,可以试试这个,如果有别的需求,可以看看SGMLParser。
>
>
> On 4/7/06, 张冰 <simpleboy.love at gmail.com> wrote:
>
> > 大家好:
>
> 我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to   python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>


--
I like Python & Linux.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060407/3ba2dcbb/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月07日 星期五 21:35

imcs ee imcsee at gmail.com
Fri Apr 7 21:35:32 HKT 2006

能否给个例子看看,我对javascript不熟悉。多谢

On 4/7/06, 员旭鹏 <recordus at gmail.com> wrote:
>
> 这种方法可以提取出页面上的文本,不过好像javascript等一些客户端脚本过滤不掉。
>
> 在06-4-7,imcs ee <imcsee at gmail.com> 写道:
>
> > from sgmllib import
> >  SGMLParser
> > class html2txt(SGMLParser):
> >         def reset(self):
> >                 self.text = ''
> >                 SGMLParser.reset(self)
> >         def handle_data(self, text):
> >                 self.text+=text
> >
> > *if* __name__ == "__main__":
> >         parser = html2txt()
> >         text = file('test.htm','rb
> > ').read()
> >         parser.feed(text)
> >         parser.close
> >         print parser.text
> >
> > 如果不是一定需要正则表达式的话。
> > 如果只是取得页面内容,可以试试这个,如果有别的需求,可以看看SGMLParser。
> >
> >
> >  On 4/7/06, 张冰 < simpleboy.love at gmail.com> wrote:
> >
> > >  大家好:
> >
> > 我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
> >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
> >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
>
> --
> I like Python & Linux.
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060407/80d741ab/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月07日 星期五 21:47

员旭鹏 recordus at gmail.com
Fri Apr 7 21:47:06 HKT 2006

#!/usr/bin/env python
# -*- encoding:utf-8 -*-

from sgmllib import SGMLParser
import urllib

class html2txt(SGMLParser):
    def reset(self):
        self.text = ''
        SGMLParser.reset(self)

    def handle_data(self,text):
        self.text += text

def main():
    txt = urllib.urlopen("http://mp3.baidu.com").read()
    txt = unicode(txt,"gbk")
    parser = html2txt()
    parser.feed(txt)
    parser.close()
    print parser.text

main()

提取出来的内容就包含有javascript和样式表:

aiyi at osr:~/Programming/Python$ ./html2txt.py
百度MP3——全球最大中文MP3搜索引擎


function syn(form){
if (form.lm[7].checked){
 form.tn.value="baidump3ring";
 form.ct.value="285212672";
 form.rn.value="";
 form.action="http://mp3.baidu.com/m"
 } else {
 if(form.lm[0].checked){
 form.rn.value="10";
 form.tn.value="baidump3lyric";
 form.ct.value="150994944";
 form.action="http://mp3.baidu.com/m"
 }else {
 if(form.lm[8].checked){
 form.tn.value="baidump3cal";
 form.ct.value="134217728";
 form.rn.value="";
 form.action="http://calling.baidu.com/m"
 }
 else {
 form.tn.value="baidump3";
 form.ct.value="134217728";
 form.rn.value="";
 form.action="http://mp3.baidu.com/m"
 }}}}
function sf(){document.f1.word.focus();}
function h(obj,url){obj.style.behavior='url
(#default#homepage)';obj.setHomePage(url);}


body{text-align:center;font-family:宋体}
p{padding:0;margin:0}
td,div{font-size:12px;vertical-align:top}
 .ff{font-family:Verdana;font-size:16px}
 #n {margin:0px auto;font-size:12px;padding:0px;border-bottom:1px solid
#0000CC;BACKGROUND:#EEEEEE;width:600px;height:18px}
 #n li{float:left;display:block;margin:0px;padding:0px;width:67px}
 #n li a{display:block;text-decoration:none;padding:4px 0px 0px
0px;margin:0px;width:100%}
 #n li a:hover{text-decoration:underline;background:#FFF;padding:4px 0px 0px
0px;margin:0px}
 #n li#hd{width:56px;height:18px} #n li#mr{width:85px;height:18px}
 #n .now{background:#00C;color:#FFF;padding:4px 0px 0px
0px;margin:0px;font-weight:bold;}
 .d{margin-left:50px;line-height:20px}
.s{color:red;font-family:arial;font-size:11px;}
 .now{background:#00c;color:#fff;padding:4px 0 0;margin:0;font-weight:600}
 sup{color:red;font-family:arial;font-size:11px}
 b{text-decoration:none;font-size:14px;line-height:200%;font-weight:100}
#cp{font-size:12px;width:223px;clear:both;color:#77c;line-height:35px}
#cp a{color:#77c}




资 讯网 页贴 吧知 道MP3图 片更 多 >>









歌词 全部音乐 MP3 rm wma flash 其它 铃声 彩铃
搜索帮助

MP3榜单家族:MP3排行榜中文金曲榜 新歌TOP100
歌曲TOP500 歌手TOP200歌手列表
歌曲列表    影视金曲 金榜猜猜猜
相声小品荟萃
曲艺集锦New!
轻音乐New!
音乐掌门人:热门专辑TOP10 精彩专辑 人气专辑 热门分类

音乐专题:勇往直前的白羊精彩专题放送为你钟情—张国荣New!


手机娱乐: 总排行 铃声排行 彩铃排行 MP3铃声 手机彩图 手机动画 手机游戏
泛音乐联盟
把百度设为首页 |搜索风云榜 | 关于百度
Baidu  2006使用百度前必读
aiyi at osr:~/Programming/Python$


在06-4-7,imcs ee <imcsee at gmail.com> 写道:
>
> 能否给个例子看看,我对javascript不熟悉。多谢
>
>
> On 4/7/06, 员旭鹏 <recordus at gmail.com> wrote:
> >
> > 这种方法可以提取出页面上的文本,不过好像javascript等一些客户端脚本过滤不掉。
> >
> > 在06-4-7,imcs ee <imcsee at gmail.com> 写道:
> >
> > > from sgmllib import
> > >  SGMLParser
> > > class html2txt(SGMLParser):
> > >         def
> > > reset(self):
> > >                 self.text = ''
> > >                 SGMLParser.reset(self)
> > >         def handle_data(self, text):
> > >                 self.text+=text
> > >
> > >
> > > *if* __name__ == "__main__":
> > >         parser = html2txt()
> > >         text = file(
> > > 'test.htm','rb
> > >
> > > ').read()
> > >         parser.feed(text)
> > >         parser.close
> > >         print parser.text
> > >
> > > 如果不是一定需要正则表达式的话。
> > > 如果只是取得页面内容,可以试试这个,如果有别的需求,可以看看SGMLParser。
> > >
> > >
> > >  On 4/7/06, 张冰 < simpleboy.love at gmail.com> wrote:
> > >
> > > >  大家好:
> > >
> > > 我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
> > >
> > >
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese at lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request at lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese at lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request at lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> >
> >
> > --
> > I like Python & Linux.
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>


--
I like Python & Linux.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060407/464aadd3/attachment-0001.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月07日 星期五 22:45

Andelf andelf at gmail.com
Fri Apr 7 22:45:41 HKT 2006

要过滤样式表和jvscript也很简单
import htmllib
import formatter
class MyParser(htmllib.HTMLParser):

    def __init__(self, verbose = 0):
        fmt = formatter.AbstractFormatter(formatter.DumbWriter())
        htmllib.HTMLParser.__init__(self, fmt, verbose)
    def start_style(self, attrs):
        self.save_bgn()
    def end_style(self):
        self.save_end()
    def start_script(self, attrs):
        if "src" in attrs[0]:
            pass
        else:
            self.save_bgn()
    def end_script(self):
        if self.savedata:
            self.save_end()

if __name__== "__main__":
    import sys
    import urllib
    f = urllib.urlopen(sys.argv[1])

#    f = file("e:/test.html")
    html = f.read()
    f.close()
    par = MyParser()
    par.feed(html)
    par.close()


2006/4/7, 员旭鹏 <recordus at gmail.com>:
>
> #!/usr/bin/env python
> # -*- encoding:utf-8 -*-
>
> from sgmllib import SGMLParser
> import urllib
>
>
> class html2txt(SGMLParser):
>     def reset(self):
>         self.text = ''
>         SGMLParser.reset(self)
>
>     def handle_data(self,text):
>         self.text += text
>
> def main():
>     txt = urllib.urlopen("http://mp3.baidu.com").read()
>     txt = unicode(txt,"gbk")
>     parser = html2txt()
>     parser.feed(txt)
>
>     parser.close()
>     print parser.text
>
> main()
>
> 提取出来的内容就包含有javascript和样式表:
>
> aiyi at osr:~/Programming/Python$ ./html2txt.py
> 百度MP3――全球最大中文MP3搜索引擎
>
>
> function syn(form){
> if (form.lm[7].checked){
>  form.tn.value="baidump3ring";
>  form.ct.value="285212672";
>  form.rn.value="";
>  form.action="http://mp3.baidu.com/m"
>  } else {
>  if(form.lm[0].checked){
>  form.rn.value="10";
>  form.tn.value="baidump3lyric";
>  form.ct.value="150994944";
>  form.action="http://mp3.baidu.com/m"
>  }else {
>  if(form.lm[8].checked){
>  form.tn.value="baidump3cal";
>  form.ct.value="134217728";
>  form.rn.value="";
>  form.action="http://calling.baidu.com/m"
>  }
>  else {
>  form.tn.value="baidump3";
>  form.ct.value="134217728";
>  form.rn.value="";
>  form.action="http://mp3.baidu.com/m"
>  }}}}
> function sf(){document.f1.word.focus();}
> function h(obj,url){obj.style.behavior='url
> (#default#homepage)';obj.setHomePage(url);}
>
>
> body{text-align:center;font-family:宋体}
> p{padding:0;margin:0}
> td,div{font-size:12px;vertical-align:top}
>  .ff{font-family:Verdana;font-size:16px}
>  #n {margin:0px auto;font-size:12px;padding:0px;border-bottom:1px solid
> #0000CC;BACKGROUND:#EEEEEE;width:600px;height:18px}
>  #n li{float:left;display:block;margin:0px;padding:0px;width:67px}
>  #n li a{display:block;text-decoration:none;padding:4px 0px 0px
> 0px;margin:0px;width:100%}
>  #n li a:hover{text-decoration:underline;background:#FFF;padding:4px 0px
> 0px 0px;margin:0px}
>  #n li#hd{width:56px;height:18px} #n li#mr{width:85px;height:18px}
>  #n .now{background:#00C;color:#FFF;padding:4px 0px 0px
> 0px;margin:0px;font-weight:bold;}
>  .d{margin-left:50px;line-height:20px}
> .s{color:red;font-family:arial;font-size:11px;}
>  .now{background:#00c;color:#fff;padding:4px 0 0;margin:0;font-weight:600}
>
>  sup{color:red;font-family:arial;font-size:11px}
>  b{text-decoration:none;font-size:14px;line-height:200%;font-weight:100}
> #cp{font-size:12px;width:223px;clear:both;color:#77c;line-height:35px}
> #cp a{color:#77c}
>
>
>
>
> 资 讯网 页贴 吧知 道MP3图 片更 多 >>
>
>
>
>
>
>
>
>
>
> 歌词 全部音乐 MP3 rm wma flash 其它 铃声 彩铃
> 搜索帮助
>
> MP3榜单家族:MP3排行榜中文金曲榜 新歌TOP100
> 歌曲TOP500 歌手TOP200歌手列表
> 歌曲列表    影视金曲 金榜猜猜猜
> 相声小品荟萃
> 曲艺集锦New!
> 轻音乐New!
> 音乐掌门人:热门专辑TOP10 精彩专辑 人气专辑 热门分类
>
> 音乐专题:勇往直前的白羊精彩专题放送为你钟情―张国荣New!
>
>
> 手机娱乐: 总排行 铃声排行 彩铃排行 MP3铃声 手机彩图 手机动画 手机游戏
> 泛音乐联盟
> 把百度设为首页 |搜索风云榜 | 关于百度
> Baidu  2006使用百度前必读
> aiyi at osr:~/Programming/Python$
>
>
>
> 在06-4-7, imcs ee <imcsee at gmail.com> 写道:
> >
> > 能否给个例子看看,我对javascript不熟悉。多谢
> >
> >
> > On 4/7/06, 员旭鹏 <recordus at gmail.com> wrote:
> > >
> > > 这种方法可以提取出页面上的文本,不过好像javascript等一些客户端脚本过滤不掉。
> > >
> > > 在06-4-7,imcs ee <imcsee at gmail.com> 写道:
> > >
> > > > from sgmllib import
> > > >
> > > >  SGMLParser
> > > > class html2txt(SGMLParser):
> > > >         def
> > > >
> > > > reset(self):
> > > >                 self.text = ''
> > > >                 SGMLParser.reset(self)
> > > >         def handle_data(self, text):
> > > >                 self.text+=text
> > > >
> > > >
> > > >
> > > > *if* __name__ == "__main__":
> > > >         parser = html2txt()
> > > >         text = file(
> > > >
> > > > 'test.htm','rb
> > > >
> > > >
> > > > ').read()
> > > >         parser.feed(text)
> > > >         parser.close
> > > >         print parser.text
> > > >
> > > > 如果不是一定需要正则表达式的话。
> > > > 如果只是取得页面内容,可以试试这个,如果有别的需求,可以看看SGMLParser。
> > > >
> > > >
> > > >  On 4/7/06, 张冰 < simpleboy.love at gmail.com> wrote:
> > > >
> > > > >  大家好:
> > > >
> > > > 我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
> > > >
> > > >
> > > > _______________________________________________
> > > > python-chinese
> > > > Post: send python-chinese at lists.python.cn
> > > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > > Unsubscribe: send unsubscribe to
> > > > python-chinese-request at lists.python.cn
> > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > >
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > python-chinese
> > > > Post: send python-chinese at lists.python.cn
> > > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > > Unsubscribe: send unsubscribe to
> > > > python-chinese-request at lists.python.cn
> > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > >
> > > >
> > >
> > >
> > > --
> > > I like Python & Linux.
> > >
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese at lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request at lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to
> > python-chinese-request at lists.python.cn
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
>
> --
> I like Python & Linux.
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>


--
Andelf
BLOG:http://blog.sohu.com/members/andelf/
BLOG:http://spaces.msn.com/members/andelf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060407/bc5f9ff1/attachment-0001.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月08日 星期六 09:58

imcs ee imcsee at gmail.com
Sat Apr 8 09:58:06 HKT 2006

多谢两位,确实是把script和style里面的东西也当作正文取出来了,没有接触过HTMLParser,看了一下,好像是专门作了对这两种情况的处理。
我自己的需求是只需要获得正文,所以就把head里面的东西都过滤掉了....代码贴在下面。

On 4/7/06, Andelf <andelf at gmail.com> wrote:
>
>  要过滤样式表和jvscript也很简单
> import htmllib
> import formatter
> class MyParser(htmllib.HTMLParser):
>
>     def __init__(self, verbose = 0):
>         fmt = formatter.AbstractFormatter(formatter.DumbWriter())
>         htmllib.HTMLParser.__init_ _(self, fmt, verbose)
>     def start_style(self, attrs):
>         self.save_bgn()
>     def end_style(self):
>         self.save_end()
>     def start_script(self, attrs):
>         if "src" in attrs[0]:
>             pass
>         else:
>             self.save_bgn()
>     def end_script(self):
>         if self.savedata:
>             self.save_end()
>
> if __name__== "__main__":
>     import sys
>     import urllib
>     f = urllib.urlopen(sys.argv[1])
>
> #    f = file("e:/test.html")
>     html = f.read()
>     f.close()
>     par = MyParser()
>     par.feed(html)
>     par.close()
>
>
> 2006/4/7, 员旭鹏 <recordus at gmail.com>:
>
> > #!/usr/bin/env python
> > # -*- encoding:utf-8 -*-
> >
> > from sgmllib import SGMLParser
> > import urllib
> >
> >
> > class html2txt(SGMLParser):
> >     def reset(self):
> >         self.text = ''
> >         SGMLParser.reset(self)
> >
> >     def handle_data(self,text):
> >         self.text += text
> >
> > def main():
> >     txt = urllib.urlopen("http://mp3.baidu.com").read()
> >     txt = unicode(txt,"gbk")
> >     parser = html2txt()
> >     parser.feed(txt)
> >
> >     parser.close()
> >     print parser.text
> >
> > main()
> >
> > 提取出来的内容就包含有javascript和样式表:
> >
> > aiyi at osr:~/Programming/Python$ ./html2txt.py
> > 百度MP3――全球最大中文MP3搜索引擎
> >
> >
> > function syn(form){
> > if (form.lm[7].checked){
> >  form.tn.value="baidump3ring";
> >  form.ct.value="285212672";
> >  form.rn.value="";
> >  form.action="http://mp3.baidu.com/m"
> >  } else {
> >  if(form.lm[0].checked){
> >  form.rn.value="10";
> >  form.tn.value="baidump3lyric";
> >  form.ct.value="150994944";
> >  form.action=" http://mp3.baidu.com/m"
> >  }else {
> >  if(form.lm[8].checked){
> >  form.tn.value="baidump3cal";
> >  form.ct.value="134217728";
> >  form.rn.value="";
> >  form.action=" http://calling.baidu.com/m"
> >  }
> >  else {
> >  form.tn.value="baidump3";
> >  form.ct.value="134217728";
> >  form.rn.value="";
> >  form.action=" http://mp3.baidu.com/m"
> >  }}}}
> > function sf(){document.f1.word.focus ();}
> > function h(obj,url){obj.style.behavior='url
> > (#default#homepage)';obj.setHomePage(url);}
> >
> >
> > body{text-align:center;font-family:宋体}
> > p{padding:0;margin:0}
> > td,div{font-size:12px;vertical-align:top}
> >  .ff{font-family:Verdana;font-size:16px}
> >  #n {margin:0px auto;font-size:12px;padding:0px;border-bottom:1px solid
> > #0000CC;BACKGROUND:#EEEEEE;width:600px;height:18px}
> >  #n li{float:left;display:block;margin:0px;padding:0px;width:67px}
> >  #n li a{display:block;text-decoration:none;padding:4px 0px 0px
> > 0px;margin:0px;width:100%}
> >  #n li a:hover{text-decoration:underline;background:#FFF;padding:4px 0px
> > 0px 0px;margin:0px}
> >  #n li#hd{width:56px;height:18px} #n li#mr{width:85px;height:18px}
> >  #n .now{background:#00C;color:#FFF;padding:4px 0px 0px
> > 0px;margin:0px;font-weight:bold;}
> >  .d{margin-left:50px;line-height:20px}
> > .s{color:red;font-family:arial;font-size:11px;}
> >  .now{background:#00c;color:#fff;padding:4px 0
> > 0;margin:0;font-weight:600}
> >  sup{color:red;font-family:arial;font-size:11px}
> >  b{text-decoration:none;font-size:14px;line-height:200%;font-weight:100}
> > #cp{font-size:12px;width:223px;clear:both;color:#77c;line-height:35px}
> > #cp a{color:#77c}
> >
> >
> >
> >
> > 资 讯网 页贴 吧知 道MP3图 片更 多 >>
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > 歌词 全部音乐 MP3 rm wma flash 其它 铃声 彩铃
> > 搜索帮助
> >
> > MP3榜单家族:MP3排行榜中文金曲榜 新歌TOP100
> > 歌曲TOP500 歌手TOP200歌手列表
> > 歌曲列表    影视金曲 金榜猜猜猜
> > 相声小品荟萃
> > 曲艺集锦New!
> > 轻音乐New!
> > 音乐掌门人:热门专辑TOP10 精彩专辑 人气专辑 热门分类
> >
> > 音乐专题:勇往直前的白羊精彩专题放送为你钟情―张国荣New!
> >
> >
> > 手机娱乐: 总排行 铃声排行 彩铃排行 MP3铃声 手机彩图 手机动画 手机游戏
> > 泛音乐联盟
> > 把百度设为首页 |搜索风云榜 | 关于百度
> > Baidu  2006使用百度前必读
> > aiyi at osr:~/Programming/Python$
> >
> >
> >
> > 在06-4-7, imcs ee <imcsee at gmail.com> 写道:
> > >
> > > 能否给个例子看看,我对javascript不熟悉。多谢
> > >
> > >
> > > On 4/7/06, 员旭鹏 <recordus at gmail.com> wrote:
> > > >
> > > > 这种方法可以提取出页面上的文本,不过好像javascript等一些客户端脚本过滤不掉。
> > > >
> > > > 在06-4-7,imcs ee <imcsee at gmail.com> 写道:
> > > >
> > > > > from sgmllib import
> > > > >
> > > > >  SGMLParser
> > > > > class html2txt(SGMLParser):
> > > > >         def
> > > > >
> > > > >
> > > > > reset(self):
> > > > >                 self.text = ''
> > > > >                 SGMLParser.reset(self)
> > > > >         def handle_data(self, text):
> > > > >                 self.text+=text
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > *if* __name__ == "__main__":
> > > > >         parser = html2txt()
> > > > >         text = file(
> > > > >
> > > > >
> > > > > 'test.htm','rb
> > > > >
> > > > >
> > > > >
> > > > > ').read()
> > > > >         parser.feed(text)
> > > > >         parser.close
> > > > >         print parser.text
> > > > >
> > > > > 如果不是一定需要正则表达式的话。
> > > > > 如果只是取得页面内容,可以试试这个,如果有别的需求,可以看看SGMLParser。
> > > > >
> > > > >
> > > > >  On 4/7/06, 张冰 < simpleboy.love at gmail.com> wrote:
> > > > >
> > > > > >  大家好:
> > > > >
> > > > > 我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > python-chinese
> > > > > Post: send python-chinese at lists.python.cn
> > > > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > > >
> > > > > Unsubscribe: send unsubscribe to
> > > > > python-chinese-request at lists.python.cn
> > > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > python-chinese
> > > > > Post: send python-chinese at lists.python.cn
> > > > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > > >
> > > > > Unsubscribe: send unsubscribe to
> > > > > python-chinese-request at lists.python.cn
> > > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > I like Python & Linux.
> > > >
> > > > _______________________________________________
> > > > python-chinese
> > > > Post: send python-chinese at lists.python.cn
> > > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > > Unsubscribe: send unsubscribe to
> > > > python-chinese-request at lists.python.cn
> > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > >
> > > >
> > >
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese at lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request at lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> >
> >
> > --
> > I like Python & Linux.
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> >
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
>
> --
> Andelf
> BLOG:http://blog.sohu.com/members/andelf/
> BLOG:http://spaces.msn.com/members/andelf
>
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese



#!/usr/bin/env python# -*- encoding:utf-8 -*-from sgmllib import
SGMLParserimport urllibclass html2txt(SGMLParser):
    def reset(self):
        self.text = ''
        self.inbody = True
        SGMLParser.reset(self)
    def handle_data(self,text):
        *if* self.inbody:
            self.text += text

    def start_head(self,text):
        self.inbody = False
    def end_head(self):
        self.inbody = Truedef main():
    txt = urllib.urlopen("http://mp3.baidu.com").read()
    #txt = unicode(txt,"gbk")
    parser = html2txt()
    parser.feed(txt)
    parser.close()
    print parser.text
main()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060408/e02f144a/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月08日 星期六 10:01

imcs ee imcsee at gmail.com
Sat Apr 8 10:01:54 HKT 2006

我贴的代码怎么自己不会分行的...

#!/usr/bin/env python
# -*- encoding:utf-8 -*-
from sgmllib import SGMLParser
import urllib
class html2txt(SGMLParser):
    def reset(self):
        self.text = ''
        self.inbody = True
        SGMLParser.reset(self)
    def handle_data(self,text):
        if self.inbody:
            self.text += text

    def start_head(self,text):
        self.inbody = False
    def end_head(self):
        self.inbody = True
def main():
    txt = urllib.urlopen("http://mp3.baidu.com").read()
    #txt = unicode(txt,"gbk")
    parser = html2txt()
    parser.feed(txt)
    parser.close()
    print parser.text
main()


On 4/8/06, imcs ee <imcsee at gmail.com> wrote:
>
>
> 多谢两位,确实是把script和style里面的东西也当作正文取出来了,没有接触过HTMLParser,看了一下,好像是专门作了对这两种情况的处理。
> 我自己的需求是只需要获得正文,所以就把head里面的东西都过滤掉了....代码贴在下面。
>
>  On 4/7/06, Andelf <andelf at gmail.com> wrote:
>
> >  要过滤样式表和jvscript也很简单
> import htmllib
> import formatter
> class MyParser(htmllib.HTMLParser):
>
>     def __init__(self, verbose = 0):
>         fmt = formatter.AbstractFormatter(formatter.DumbWriter())
>         htmllib.HTMLParser.__init _ _(self, fmt, verbose)
>     def start_style(self, attrs):
>         self.save_bgn()
>     def end_style(self):
>         self.save_end()
>     def start_script(self, attrs):
>         if "src" in attrs[0]:
>             pass
>         else:
>             self.save_bgn()
>     def end_script(self):
>         if self.savedata:
>             self.save_end()
>
> if __name__== "__main__":
>     import sys
>     import urllib
>     f = urllib.urlopen(sys.argv[1])
>
> #    f = file("e:/test.html")
>     html = f.read()
>     f.close()
>     par = MyParser()
>     par.feed(html)
>     par.close()
>
>
> 2006/4/7, 员旭鹏 <recordus at gmail.com>:
>
> > #!/usr/bin/env python
> > # -*- encoding:utf-8 -*-
> >
> > from sgmllib import SGMLParser
> > import urllib
> >
> >
> > class html2txt(SGMLParser):
> >     def reset(self):
> >         self.text = ''
> >         SGMLParser.reset(self)
> >
> >     def handle_data(self,text):
> >         self.text += text
> >
> > def main():
> >     txt = urllib.urlopen("http://mp3.baidu.com").read()
> >     txt = unicode(txt,"gbk")
> >     parser = html2txt()
> >     parser.feed(txt)
> >
> >     parser.close()
> >     print parser.text
> >
> > main()
> >
> > 提取出来的内容就包含有javascript和样式表:
> >
> > aiyi at osr:~/Programming/Python$ ./html2txt.py
> > 百度MP3――全球最大中文MP3搜索引擎
> >
> >
> > function syn(form){
> > if (form.lm[7].checked){
> >  form.tn.value="baidump3ring";
> >  form.ct.value="285212672";
> >  form.rn.value="";
> >  form.action="http://mp3.baidu.com/m"
> >  } else {
> >  if(form.lm[0].checked){
> >  form.rn.value="10";
> >  form.tn.value="baidump3lyric";
> >  form.ct.value="150994944";
> >  form.action=" http://mp3.baidu.com/m"
> >  }else {
> >  if(form.lm[8].checked){
> >  form.tn.value="baidump3cal";
> >  form.ct.value="134217728";
> >  form.rn.value="";
> >  form.action=" http://calling.baidu.com/m"
> >  }
> >  else {
> >  form.tn.value="baidump3";
> >  form.ct.value="134217728";
> >  form.rn.value="";
> >  form.action=" http://mp3.baidu.com/m"
> >  }}}}
> > function sf(){document.f1.word.focus ();}
> > function h(obj,url){obj.style.behavior='url
> > (#default#homepage)';obj.setHomePage(url);}
> >
> >
> > body{text-align:center;font-family:宋体}
> > p{padding:0;margin:0}
> > td,div{font-size:12px;vertical-align:top}
> >  .ff{font-family:Verdana;font-size:16px}
> >  #n {margin:0px auto;font-size:12px;padding:0px;border-bottom:1px solid
> > #0000CC;BACKGROUND:#EEEEEE;width:600px;height:18px}
> >  #n li{float:left;display:block;margin:0px;padding:0px;width:67px}
> >  #n li a{display:block;text-decoration:none;padding:4px 0px 0px
> > 0px;margin:0px;width:100%}
> >  #n li a:hover{text-decoration:underline;background:#FFF;padding:4px 0px
> > 0px 0px;margin:0px}
> >  #n li#hd{width:56px;height:18px} #n li#mr{width:85px;height:18px}
> >  #n .now{background:#00C;color:#FFF;padding:4px 0px 0px
> > 0px;margin:0px;font-weight:bold;}
> >  .d{margin-left:50px;line-height:20px}
> > .s{color:red;font-family:arial;font-size:11px;}
> >  .now{background:#00c;color:#fff;padding:4px 0
> > 0;margin:0;font-weight:600}
> >  sup{color:red;font-family:arial;font-size:11px}
> >  b{text-decoration:none;font-size:14px;line-height:200%;font-weight:100}
> > #cp{font-size:12px;width:223px;clear:both;color:#77c;line-height:35px}
> > #cp a{color:#77c}
> >
> >
> >
> >
> > 资 讯网 页贴 吧知 道MP3图 片更 多 >>
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > 歌词 全部音乐 MP3 rm wma flash 其它 铃声 彩铃
> > 搜索帮助
> >
> > MP3榜单家族:MP3排行榜中文金曲榜 新歌TOP100
> > 歌曲TOP500 歌手TOP200歌手列表
> > 歌曲列表    影视金曲 金榜猜猜猜
> > 相声小品荟萃
> > 曲艺集锦New!
> > 轻音乐New!
> > 音乐掌门人:热门专辑TOP10 精彩专辑 人气专辑 热门分类
> >
> > 音乐专题:勇往直前的白羊精彩专题放送为你钟情―张国荣New!
> >
> >
> > 手机娱乐: 总排行 铃声排行 彩铃排行 MP3铃声 手机彩图 手机动画 手机游戏
> > 泛音乐联盟
> > 把百度设为首页 |搜索风云榜 | 关于百度
> > Baidu  2006使用百度前必读
> > aiyi at osr:~/Programming/Python$
> >
> >
> >
> > 在06-4-7, imcs ee <imcsee at gmail.com> 写道:
> > >
> > > 能否给个例子看看,我对javascript不熟悉。多谢
> > >
> > >
> > > On 4/7/06, 员旭鹏 <recordus at gmail.com> wrote:
> > > >
> > > > 这种方法可以提取出页面上的文本,不过好像javascript等一些客户端脚本过滤不掉。
> > > >
> > > > 在06-4-7,imcs ee <imcsee at gmail.com> 写道:
> > > >
> > > > > from sgmllib import
> > > > >
> > > > >  SGMLParser
> > > > > class html2txt(SGMLParser):
> > > > >         def
> > > > >
> > > > >
> > > > >
> > > > > reset(self):
> > > > >                 self.text = ''
> > > > >                 SGMLParser.reset(self)
> > > > >         def handle_data(self, text):
> > > > >                 self.text+=text
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > *if* __name__ == "__main__":
> > > > >         parser = html2txt()
> > > > >         text = file(
> > > > >
> > > > >
> > > > >
> > > > > 'test.htm','rb
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > ').read()
> > > > >         parser.feed(text)
> > > > >         parser.close
> > > > >         print parser.text
> > > > >
> > > > > 如果不是一定需要正则表达式的话。
> > > > > 如果只是取得页面内容,可以试试这个,如果有别的需求,可以看看SGMLParser。
> > > > >
> > > > >
> > > > >  On 4/7/06, 张冰 < simpleboy.love at gmail.com> wrote:
> > > > >
> > > > > >  大家好:
> > > > >
> > > > > 我是个python新手,最近写了一个python小程序。主要功能就是用python获取某个动态网页的数据流,然后提取所需要的内容,最后存入数据库。我现在遇到的问题是在提取所需内容时,如何合理的使用正则表达式,比如完全的过滤标签以及准确提取内容等等,现在程序就剩这个问题没有很好的解决了,请问各位python高手,有没有好的方法!先谢了!
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > python-chinese
> > > > > Post: send python-chinese at lists.python.cn
> > > > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > > >
> > > > > Unsubscribe: send unsubscribe to
> > > > > python-chinese-request at lists.python.cn
> > > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > python-chinese
> > > > > Post: send python-chinese at lists.python.cn
> > > > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > > >
> > > > > Unsubscribe: send unsubscribe to
> > > > > python-chinese-request at lists.python.cn
> > > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > I like Python & Linux.
> > > >
> > > > _______________________________________________
> > > > python-chinese
> > > > Post: send python-chinese at lists.python.cn
> > > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > > Unsubscribe: send unsubscribe to
> > > > python-chinese-request at lists.python.cn
> > > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > > >
> > > >
> > >
> > > _______________________________________________
> > > python-chinese
> > > Post: send python-chinese at lists.python.cn
> > > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > > Unsubscribe: send unsubscribe to
> > > python-chinese-request at lists.python.cn
> > > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> > >
> > >
> >
> >
> > --
> > I like Python & Linux.
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese at lists.python.cn
> > Subscribe: send subscribe to python-chinese-request at lists.python.cn
> > Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> >
> > Detail Info: http://python.cn/mailman/listinfo/python-chinese
> >
> >
>
>
> --
> Andelf
> BLOG:http://blog.sohu.com/members/andelf/
> BLOG:http://spaces.msn.com/members/andelf
>
> _______________________________________________
>
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
> #!/usr/bin/env python # -*- encoding:utf-8 -*- from sgmllib importSGMLParser
> import urllib class html2txt(SGMLParser): def reset(self): self.text = ''
> self.inbody = True
> SGMLParser.reset(self) def handle_data
> (self,text): *if* self.inbody: self.text += text def start_head(self,text):
> self.inbody = False def end_head(self): self.inbody = True
> def main(): txt = urllib.urlopen("http://mp3.baidu.com ").read() #txt =
> unicode(txt,"gbk") parser = html2txt() parser.feed(txt) parser.close()
> print parser.text main()
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060408/77b9a219/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月08日 星期六 14:09

员旭鹏 recordus at gmail.com
Sat Apr 8 14:09:29 HKT 2006

嗯,很好,呵呵,
没有研究过SGMLParser,功能还挺强的,呵呵
不知道你贴的怎么自己不会分行,
我是在gnome-terminal里使用vi打开直接复制了粘贴过来的

在06-4-8,imcs ee <imcsee at gmail.com> 写道:
>
> 我贴的代码怎么自己不会分行的...
>
> #!/usr/bin/env python
> # -*- encoding:utf-8 -*-
> from sgmllib import SGMLParser
> import urllib
> class html2txt(SGMLParser):
>     def reset(self):
>         self.text = ''
>         self.inbody = True
>         SGMLParser.reset(self)
>     def handle_data(self,text):
>         if self.inbody:
>             self.text += text
>
>     def start_head(self,text):
>         self.inbody = False
>     def end_head(self):
>         self.inbody = True
> def main():
>     txt = urllib.urlopen("http://mp3.baidu.com").read ()
>     #txt = unicode(txt,"gbk")
>     parser = html2txt()
>     parser.feed(txt)
>     parser.close()
>     print parser.text
> main()
>
--
I like Python & Linux.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060408/fb377d62/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月08日 星期六 19:13

Andelf andelf at gmail.com
Sat Apr 8 19:13:05 HKT 2006

我是按照htmllib.py里对tag的处理,子类中加入了4个方法,然后就可以处理

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年04月09日 星期日 09:15

imcs ee imcsee at gmail.com
Sun Apr 9 09:15:00 HKT 2006

SGMLParser里面也是类似的处理方法。今天看到一个 pullparser 的,看了他提供的两个例子,应该也比较容易实现类似功能。
http://wwwsearch.sourceforge.net/pullparser/


On 4/8/06, Andelf <andelf at gmail.com> wrote:
>
>  我是按照htmllib.py里对tag的处理,子类中加入了4个方法,然后就可以处理

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号