1. 用requests庫和BeautifulSoup庫,爬取校園新聞首頁新聞的標題、連接、正文。html
import requests from bs4 import BeautifulSoup from datetime import datetime res = requests.get("http://news.gzcc.cn/html/xiaoyuanxinwen/") res.encoding = 'utf-8' soup = BeautifulSoup(res.text, 'html.parser') for news in soup.select('li'): if len(news.select('.news-list-title')) > 0: r = news.select('.news-list-title')[0].text #正文內容 d = news.select('.news-list-info')[0].contents[0].text #新聞發佈時間 t = news.select('.news-list-info')[0].contents[1].text #來源 g = news.select('a')[0].attrs['href'] #連接 print(r,d,t,g)
2. 分析字符串,獲取每篇新聞的發佈時間,做者,來源,攝影等信息。spa
法一:
resd = requests.get(g) resd.encoding = 'utf-8' soupd = BeautifulSoup(resd.text, 'html.parser') x = soupd.select('.show-content')[0].text t1 = soupd.select('.show-info')[0].text.split() #每篇新聞的發佈時間,做者,來源 print(t1) s = t1[0].lstrip('發佈時間:') + " " + t1[1] #發佈時間 s1 = t1[2].lstrip('做者:') #做者 s2 = t1[3].lstrip('審覈:') #審覈 s3 = t1[4].lstrip("來源:") #來源 print(s, s1, s2, s3)
二:
t2 = soupd.select('.show-info')[0].text print(t2) q = t2.lstrip('發佈時間:')[:19] q1 = t2.split()[2].lstrip('做者:') print(q, q1)
3. 將其中的發佈時間由str轉換成datetime類型。code
dati = datetime.strptime(s, '%Y-%m-%d %H:%M:%S') print(type(dati)) print(dati, dati.strftime('%Y/%m/%d'))
4. 將完整的代碼及運行結果截圖發佈在做業上。htm