網絡爬蟲-課時9抓取新聞內文頁面


網絡學習筆記

import requests
from bs4 import BeautifulSoup
res = requests.get('http://news.sina.com.cn/c/nd/2016-08-20/doc-ifxvctcc8121090.shtml')
res.encoding = 'utf-8'
print(res.text)
soup = BeautifulSoup(res.text, 'html.parser')
soup.select('#artibodyTitle')[0].text
'環保部門不再核發機動車環保合格標誌'
timesource = soup.select('.time-source')[0].contents[0].strip()#得到字符串
#timesource = soup.select('.time-source')[0]包含時間和來源,contents,得到不同的list,[0]取得第一個,strip去掉控制符
type(timesource)#取得字符串轉換成時間,需要用datetime.strptime(,'%Y年%m月%d日%H:%M');時間轉換爲字符串.strftime('%Y-%m-%d')
timesource

'2016年08月20日22:21'

from datetime import datetime
dt = datetime.strptime(timesource, '%Y年%m月%d日%H:%M')
dt.strftime('%Y-%m-%d')
'2016-08-20'

soup.select('.time-source span a')[0].text
'新華網'
soup.select('#artibody p')[:-1]#[:-1]可以吧最後一個<p去掉
[<p>  原標題:擋風玻璃“減負”:環保部門不再核發機動車環保合格標誌</p>,
 <p>  新華社北京8月20日電 記者日前從環境保護部獲悉,環保部、公安部、國家認監委聯合發佈《關於進一步規範排放檢驗加強機動車環境監督管理工作的通知》,進一步規範機動車排放檢驗。通知明確,環保部門不再核發機動車環保檢驗合格標誌,以後汽車擋風玻璃上的年檢標誌將從三個變成兩個。</p>]
article = []
for p in soup.select('#artibody p')[:-1]:
    article.append(p.text.strip())
print(article)#\u3000\u3000是空白的控制碼,strip()移除左右空白

' '.join(article)#字符串以空白連接

'原標題:擋風玻璃“減負”:環保部門不再核發機動車環保合格標誌 新華社北京8月20日電 記者日前從環境保護部獲悉,環保部、公安部、國家認監委聯合發佈《關於進一步規範排放檢驗加強機動車環境監督管理工作的通知》,進一步規範機動車排放檢驗。通知明確,環保部門不再核發機動車環保檢驗合格標誌,以後汽車擋風玻璃上的年檢標誌將從三個變成兩個。'


一行代碼實現

' '.join([p.text.strip() for p in soup.select('#artibody p')[:-1]])

soup.select('.article-editor')[0].text.lstrip('責任編輯:')
'瞿崑 SN117'





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章