3d立体相册特效html网页代码_新闻类网页正文通用抽取器
項目起源
開發(fā)這個項目,源自于我在知網(wǎng)發(fā)現(xiàn)了一篇關(guān)于自動化抽取新聞類網(wǎng)站正文的算法論文——《基于文本及符號密度的網(wǎng)頁正文提取方法》
這篇論文中描述的算法看起來簡潔清晰,并且符合邏輯。但由于論文中只講了算法原理,并沒有具體的語言實現(xiàn),所以我使用 Python 根據(jù)論文實現(xiàn)了這個抽取器。并分別使用今日頭條、網(wǎng)易新聞、游民星空、觀察者網(wǎng)、鳳凰網(wǎng)、騰訊新聞、ReadHub、新浪新聞做了測試,發(fā)現(xiàn)提取效果非常出色,幾乎能夠達到100%的準確率。
項目現(xiàn)狀
在論文中描述的正文提取基礎(chǔ)上,我增加了標題、發(fā)布時間和文章作者的自動化探測與提取功能。
最后的輸出效果如下圖所示:
目前這個項目是一個非常非常早期的 Demo,發(fā)布出來是希望能夠盡快得到大家的使用反饋,從而能夠更好地有針對性地進行開發(fā)。
本項目取名為抽取器,而不是爬蟲,是為了規(guī)避不必要的風(fēng)險,因此,本項目的輸入是 HTML,輸出是一個字典。請自行使用恰當?shù)姆椒ǐ@取目標網(wǎng)站的 HTML。
本項目現(xiàn)在不會,將來也不會提供主動請求網(wǎng)站 HTML 的功能。
如何使用
項目代碼中的GeneralNewsCrawler.py提供了本項目的基本使用示例。
- 本項目的測試代碼在test文件夾中
- 本項目的輸入 HTML 為經(jīng)過 JavaScript 渲染以后的 HTML,而不是普通的網(wǎng)頁源代碼。所以無論是后端渲染、Ajax 異步加載都適用于本項目。
- 如果你要手動測試新的目標網(wǎng)站或者目標新聞,那么你可以在 Chrome 瀏覽器中打開對應(yīng)頁面,然后開啟開發(fā)者工具,如下圖所示:
在Elements標簽頁定位到標簽,并右鍵,選擇Copy-Copy OuterHTML,如下圖所示
- 當然,你可以使用 Puppeteer/Pyppeteer、Selenium 或者其他任何方式獲取目標頁面的JavaScript渲染后的源代碼。
- 獲取到源代碼以后,通過如下代碼提取信息:
對大多數(shù)新聞頁面而言,以上的寫法就能夠解決問題了。
但某些新聞網(wǎng)頁下面會有評論,評論里面可能存在長篇大論,它們會看起來比真正的新聞?wù)母袷钦?#xff0c;因此extractor.extract()方法還有一個默認參數(shù)noise_mode_list,用于在網(wǎng)頁預(yù)處理時提前把評論區(qū)域整個移除。
noise_mode_list的值是一個列表,列表里面的每一個元素都是 XPath,對應(yīng)了你需要提前移除的,可能會導(dǎo)致干擾的目標標簽。
例如,觀察者網(wǎng)下面的評論區(qū)域?qū)?yīng)的Xpath 為//div[@class="comment-list"]。所以在提取觀察者網(wǎng)時,為了防止評論干擾,就可以加上這個參數(shù):
result = extractor.extract(html, noise_node_list=['//div[@class="comment-list"]'])test文件夾中的網(wǎng)頁的提取結(jié)果,請查看result.txt。
已知問題
Todo
- 使用一個配置文件來存放常量數(shù)據(jù),而不是直接 Hard Code 寫在代碼中。
- 允許自定義時間、作者的提取Pattern
- 自動識別新聞列表頁
- 優(yōu)化內(nèi)容提取速度
- 測試更多新聞網(wǎng)站
- ……
交流溝通
- 項目地址:https://github.com/kingname/GeneralNewsExtractor
轉(zhuǎn)載自原文:https://www.cnblogs.com/xieqiankun/p/generalnewsextractor.html
作者:青南
總結(jié)
以上是生活随笔為你收集整理的3d立体相册特效html网页代码_新闻类网页正文通用抽取器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORAN专题系列-5:5G O-RAN
- 下一篇: 使用slickedit调试开源代码