Python Show-Me-the-Code 第 0008 題 提取HTML本文內容

來源:互聯網
上載者:User

標籤:python   網頁   解析   html   

第 0008 題:一個HTML檔案,找出裡面的本文

思路:我把這裡的本文理解為網頁中我主要內容,那麼怎麼去抓取這個主要內容呢?我一開始的想法是用beautifulsoup來解析網頁,但是又想到如果要抽取本文的話這樣做還涉及到比較複雜的演算法,而且對於不同的網頁來說效果可能做不到很好。後來我發現了Python-goose(Github)這個神器,它是基於NLTK和Beautiful Soup的,分別是文本處理和HTML解析的領導者,目標是給定任意資訊文章或者任意文章類的網頁,不僅提取出文章的主體,同時提取出所有元資訊以及圖片等資訊,支援中文網頁(用到了結巴分詞)。這個正好符合需求,所以直接拿來用了。

安裝python goose:

  • git clone https://github.com/grangier/python-goose.git
  • cd python-goose
  • pip install -r requirements.txt
  • python setup.py install

0008.提取HTML本文內容.py

#!/usr/bin/env python#coding: utf-8from goose import Goosefrom goose.text import StopWordsChineseimport sysreload(sys)sys.setdefaultencoding("utf-8")# 要分析的網頁urlurl = ‘http://www.ruanyifeng.com/blog/2015/05/thunk.html‘def extract(url):    ‘‘‘    提取網頁本文    ‘‘‘    g = Goose({‘stopwords_class‘: StopWordsChinese})    article = g.extract(url=url)    return article.cleaned_textif __name__ == ‘__main__‘:    print extract(url)

拿阮一峰部落格上一篇文章測試,效果如下:

Python Show-Me-the-Code 第 0008 題 提取HTML本文內容

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.