【作业】用requests库和BeautifulSoup4库爬取新闻列表

1、用requests库和BeautifulSoup4库,爬取校园新闻列表的时间、标题、链接、来源、详细内容。

要求:(1)将其中的时间str转换成datetime类型。(2)将取得详细内容的代码包装成函数。

 1 #广州商学院新闻爬虫
 2 import requests
 3 from bs4 import BeautifulSoup
 4 from datetime import datetime
 5 
 6 webs="http://news.gzcc.cn/html/xiaoyuanxinwen/"
 7 res=requests.get(webs)
 8 res.encoding='utf-8'  #编码转换,避免中文乱码输出
 9 soup=BeautifulSoup(res.text,"html.parser")  #html.parser是指定解析器
10 
11 #下面函数是输出新闻的详细内容
12 def getdetail(url):
13     resd=requests.get(url)
14     resd.encoding='utf-8'
15     soupd=BeautifulSoup(resd.text,'html.parser')
16     return (soupd.select('.show-content')[0].text)
17 
18 #下面函数是输出新闻的时间,类型为datetime
19 def gettime(url):
20     resd=requests.get(url)
21     resd.encoding='utf-8'
22     soupd=BeautifulSoup(resd.text,'html.parser')
23     tx1=soupd.select('.show-info')[0].text
24     tx2="{0:.24}".format(tx1[5:24])
25     time=datetime.strptime(tx2,'%Y-%m-%d %H:%M:%S') #把字符串类型转换成时间类型
26     return (time)
27 
28 for news in soup.select('li'):
29     if len(news.select('.news-list-title'))>0:
30         #如果存在新闻列表标题的话(有内容则会大于0)
31         title=(news.select('.news-list-title')[0].text)
32         #输出标题的内容
33         url=news.select('a')[0]['href']
34         #输出a标签中的href内容(即网址)
35         
36         time=gettime(url)
37         #用列表列出子标签后取出第一个元素的内容(时间)
38         sorce=(news.select('.news-list-info')[0].contents[1].text)
39         #用列表列出子标签后取出第二个元素的内容(来源)
40         detail=getdetail(url)
41         #输出详细内容
42         print(time,sorce,title,'\n',url,'\n',detail)
43         #输出新闻时间、来源、标题、链接、和内容

2、一个自己感兴趣的主题,做类似的操作,为后面“爬取网络数据并进行文本分析”做准备。

 1 import requests
 2 from bs4 import BeautifulSoup
 3 
 4 webs="http://geek.csdn.net/cloud"
 5 res=requests.get(webs)
 6 res.encoding='utf-8'  
 7 soup=BeautifulSoup(res.text,"html.parser") 
 8 for news in soup.select('span'):
 9     if len(news.select('.title'))>0:
10         title=(news.select('.title')[0].text)
11         url=news.select('.title')[0]['href']    
12         print(title,'\n',url)

 

posted @ 2017-09-28 18:15  27杨华星  阅读(282)  评论(0编辑  收藏  举报