目標:
前篇(Python 基本爬蟲程式 (crawler) 範例 - 以 Google 新聞為例)我們先利用簡單爬蟲程式來擷取Google 新聞-焦點新聞的標題和新聞連結。現在我們就接著利用 jieba 這套中文分詞程式嘗試將截取回來的標題文字進行中文分詞。
工具:
- Python Package - jieba
export http_proxy=http://proxy.hinet.net:80 export https_proxy=http://proxy.hinet.net:80 pip install jieba
程式:
# coding=utf-8 # encoding=utf-8 import requests from bs4 import BeautifulSoup import jieba res = requests.get("https://news.google.com") soup = BeautifulSoup(res.text) count = 1 for item in soup.select(".esc-body"): print '======[',count,']=========' news_title = item.select(".esc-lead-article-title")[0].text news_url = item.select(".esc-lead-article-title")[0].find('a')['href'] print("News Title: "+news_title) print("News Url: "+news_url) # 載入使用者自建詞庫 jieba.load_userdict("userdict.txt") # 對 news_title 進行中文分詞 print '' print ' -------進行中文分詞-------' words = jieba.cut(news_title, cut_all=True) print(" Full Mode: " + "/ ".join(words)) words = jieba.cut(news_title, cut_all=False) print(" Default Mode: " + "/ ".join(words)) words = jieba.cut_for_search(news_title) print(" Search Engine Mode: " + ", ".join(words)) print '' count += 1
執行結果:
======[ 41 ]========= ... News Title: 包塑膠袋泡冰水男順利接回斷指 News Url: http://udn.com/news/story/7266/1406918-%E5%8C%85%E5%A1%91%E8%86%A0%E8%A2%8B%E6%B3%A1%E5%86%B0%E6%B0%B4-%E7%94%B7%E9%A0%86%E5%88%A9%E6%8E%A5%E5%9B%9E%E6%96%B7%E6%8C%87 -------進行中文分詞------- Full Mode: 包/ 塑/ 膠/ 袋/ 泡/ 冰水/ 男/ 順/ 利/ 接回/ 斷/ 指 Default Mode: 包塑/ 膠袋/ 泡/ 冰水/ 男順利接/ 回斷/ 指 Search Engine Mode: 包塑, 膠袋, 泡, 冰水, 男順利接, 回斷, 指 ======[ 42 ]========= News Title: 與林口長庚同等級土城醫院開工 News Url: http://www.chinatimes.com/newspapers/20151229000446-260106 -------進行中文分詞------- Full Mode: 與/ 林口/ 長/ 庚/ 同等/ 級/ 土城/ 醫/ 院/ 開/ 工 Default Mode: 與/ 林口/ 長/ 庚/ 同等/ 級/ 土城/ 醫院/ 開工 Search Engine Mode: 與, 林口, 長, 庚, 同等, 級, 土城, 醫院, 開工
參考資料:
- GitHub - jieba
- Speaker Dock - Jieba 結巴中文斷詞
- 下載使用者自建詞庫 userdict.txt (補充自小麥注音輸入法詞庫)
2 則留言:
請問依照您的程式執行了,但是並沒有任何資料出現
google news 網頁HTML內容已經更改過,原來利用bs4找出特定tags辨識新聞內容的程式碼,也需要跟著調整。沒辦法,爬蟲程式就是需要一直跟著被爬的網站內容異動。
Hinet Proxy 服務也已經關閉,無法再利用這個proxy服務。
張貼留言