1. 程式人生 > >Python利用Beautiful Soup抓取新聞標題

Python利用Beautiful Soup抓取新聞標題

Beautiful Soup的簡介

簡單來說,Beautiful Soup是python的一個庫,最主要的功能是從網頁抓取資料。官方解釋如下:

Beautiful Soup提供一些簡單的、python式的函式用來處理導航、搜尋、修改分析樹等功能。它是一個工具箱,通過解析文件為使用者提供需要抓取的資料,因為簡單,所以不需要多少程式碼就可以寫出一個完整的應用程式。

Beautiful Soup自動將輸入文件轉換為Unicode編碼,輸出文件轉換為utf-8編碼。你不需要考慮編碼方式,除非文件沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了。然後,你僅僅需要說明一下原始編碼方式就可以了。

Beautiful Soup已成為和lxml、html6lib一樣出色的python直譯器,為使用者靈活地提供不同的解析策略或強勁的速度。

下面是程式碼:

import requests
from bs4 import BeautifulSoup

url = 'http://news.sina.com.cn/china/'
res = requests.get(url)
# 使用UTF-8編碼
res.encoding = 'UTF-8'

# 使用剖析器為html.parser
soup = BeautifulSoup(res.text, 'html.parser')

# 遍歷每一個class=news-item的節點
for news in soup.select('.news-item'): h2 = news.select('h2') # 只選擇長度大於0的結果 if len(h2) > 0: time = news.select('.time')[0].text title = h2[0].text href = h2[0].select('a')[0]['href'] print(time, title, href)