1.取出一个新闻列表页的全部新闻 包装成函数。
2.获取总的新闻篇数,算出新闻总页数。
3.获取全部新闻列表页的全部新闻详情。
4.找一个自己感兴趣的主题,进行数据爬取,并进行分词分析。不能与其它同学雷同。
import requests from bs4 import BeautifulSoup from datetime import datetime import re # 获取新闻列表页的简略信息 def crawlOnePage(url): res=requests.get(url) res.encoding = 'UTF-8' soup = BeautifulSoup(res.text, 'html.parser') cont=soup.select('.block') for i in cont: print('——'*10 + '---' + '——'*10) print() print('新闻网址: ' + 'www.sustc.edu.cn' + i.select('a')[0]['href']) print('新闻标题: ' + i.select('a')[0]['title']) a='http://www.sustc.edu.cn' + i.select('a')[0].attrs['href'] print(a) getDetail(a) print() # #获取新闻具体信息 def getDetail(url): res = requests.get(url) res.encoding = 'UTF-8' soup = BeautifulSoup(res.text, 'html.parser') cont=soup.select('.d')[0].text #将时间字符串转换成datetime格式 release_time=datetime.strptime(cont,'%Y-%m-%d ') print(release_time) print('新闻类型: ' + soup.select('.tag')[0].text) content=soup.select('.txt')[1].select('p') print(content[-1].text) for i in content[:-2]: print(i.text) #取得所有页面的新闻 def getTotalPage(url): res = requests.get(url) res.encoding = 'UTF-8' soup = BeautifulSoup(res.text, 'html.parser') # print(res.text) d = int(soup.select('.page_span')[0].text[:soup.select('.page_span')[0].text.index('页')].lstrip('共')) for i in range(1,d): page=str(i) geturl='http://www.sustc.edu.cn/news_events_/p/'+page crawlOnePage(geturl) getTotalPage('http://www.sustc.edu.cn/news_events_/4722')