网络学习笔记
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'