標籤:

Python練習第五題,找出HTML里的正文

第五題:一個HTML文件,找出裡面的正文

一、分析

首先我們需要網頁URL,選用頭條上的新聞

武漢麵館殺人事件調查:兇手行兇後蹲在門口未逃跑 家屬希望捐獻死者器官

URL = "武漢麵館殺人事件調查:兇手行兇後蹲在門口未逃跑 家屬希望捐獻死者器官"

然後考慮如何提取出正文,我用BeautifulSoup來試試看。

這裡有中文版的Beautiful Soup 4.2.0 文檔

推薦自己親自去看看,會有收穫的

二、舉例練習

用官方文檔給出的例子,這是 愛麗絲夢遊仙境 的一段內容,從文檔中獲取所有文字內容:

html_doc = """n<html><head><title>The Dormouses story</title></head>n<body>n<p class="title"><b>The Dormouses story</b></p>nn<p class="story">Once upon a time there were three little sisters; and their names weren<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,n<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> andn<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;nand they lived at the bottom of a well.</p>nn<p class="story">...</p>n"""nfrom bs4 import BeautifulSoupnsoup = BeautifulSoup(html_doc,lxml)#如果不加入lxml,會提示錯誤nnprint(soup.get_text())n

示例很簡單,但是應用到實例中呢?

三、實戰訓練

應用上節BeautifulSoup的方法來完成目標

(最好加上headers,我拿知乎做實驗就被封IP了 =_= !)

確實可以提出正文,但是文末含有「window.globals = window.globals || {};」等我們不需要的字元,來到網頁源代碼中發現了這一段..

四、問題:如何在此基礎上修改代碼,去除末尾我們不需要的部分?(?? . ??)

源碼:

from bs4 import BeautifulSoupnimport requestsnnr = http://www.toutiao.com/a6389133537292304642/nheaders = {user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36}nurl = requests.get(r,headers=headers)nsoup = BeautifulSoup(url.text,lxml)nprint(soup.get_text())n

挑戰編程題目, 一起體驗編程的樂趣!

感覺必須學習Django和Mysql,在拉鉤上看到Python工程師基本都要求有這兩個技能,這裡有Django學習方法Django 學習順序及入門要求?

專欄地址:知乎專欄

推薦閱讀:

對一些盲目想從事大數據的朋友的警示。
深入淺出地,徹徹底底地理解python中的編碼

TAG:Python |