用requests库和BeautifulSoup4库爬取新闻列表
Posted 百里守约
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用requests库和BeautifulSoup4库爬取新闻列表相关的知识,希望对你有一定的参考价值。
1、用requests库和BeautifulSoup4库,爬取校园新闻列表的时间、标题、链接、来源、详细内容;将其中的时间str转换成datetime类型;将取得详细内容的代码包装成函数。
import requests from bs4 import BeautifulSoup from datetime import datetime gzccurl=\'http://news.gzcc.cn/html/xiaoyuanxinwen/\' res=requests.get(gzccurl) res.encoding=\'utf-8\' soup =BeautifulSoup(res.text,\'html.parser\') def getdetail(url):#将取得详细内容的代码包装成函数 resn=requests.get(url) resn.encoding=\'utf-8\' soupn=BeautifulSoup(resn.text,\'html.parser\') detail=soupn.select(\'.show-content\')[0].text return (detail) def getdetailtime(url):#将取得详细时间的代码包装成函数 rest=requests.get(url) rest.encoding=\'utf-8\' soupt=BeautifulSoup(rest.text,\'html.parser\') detailtime=soupt.select(\'.show-info\')[0].text[16:24] return(detailtime) for news in soup.select(\'li\'): if len((news.select(\'.news-list-title\')))>0: time=news.select(\'.news-list-info\')[0].span.text#时间 title=news.select(\'.news-list-title\')[0].contents[0]#标题 url=news.select(\'a\')[0][\'href\']#链接 source=news.select(\'.news-list-info\')[0].select(\'span\')[1].text detail=getdetail(url) dtime=getdetailtime(url) addt=time+\'-\'+dtime dt=datetime.strptime(addt,\'%Y-%m-%d-%H:%M:%S\')#将其中的时间str转换成datetime类型
2、爬取AOPA网站上的内容
import requests from bs4 import BeautifulSoup from datetime import datetime aopaurl=\'http://www.aopa.org.cn/news/list.php?catid=8\' res=requests.get(aopaurl) res.encoding=\'utf-8\' soup =BeautifulSoup(res.text,\'html.parser\') def getdetail(url):#将取得详细内容的代码包装成函数 resn=requests.get(url) resn.encoding=\'utf-8\' soupn=BeautifulSoup(resn.text,\'html.parser\') detail=soupn.select(\'.content\')[0].text return (detail) for news in soup.select(\'.catlist\'): #print(news) for news2 in news.select(\'.catlist_li\'): if len((news2))>0: time=news2.select(\'span\')[0].text #时间 title=news2.select(\'a\')[0][\'title\']#标题 url=news2.select(\'a\')[0][\'href\']#链接 dt=datetime.strptime(time,\'%Y-%m-%d %H:%M\')#将其中的时间str转换成datetime类型 detail=getdetail(url) print( "时间:",dt,"\\t标题:",title,"\\t链接:",url,"详情:",detail)
以上是关于用requests库和BeautifulSoup4库爬取新闻列表的主要内容,如果未能解决你的问题,请参考以下文章
用requests库和BeautifulSoup4库爬取新闻列表
用requests库和BeautifulSoup4库爬取新闻列表
用requests库和BeautifulSoup4库爬取新闻列表
用requests库和BeautifulSoup4库爬取新闻列表