Python利用Beautiful Soup抓取新聞標題
阿新 • • 發佈:2019-01-25
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)