python爬虫案例系列教程——python爬取百度新闻RSS数据
来源:互联网 发布:淘宝怎么看行业排名 编辑:程序博客网 时间:2024/06/01 21:04
全栈工程师开发手册 (作者:栾鹏)
python教程全解
各RSS网站参考http://blog.csdn.net/luanpeng825485697/article/details/78737510
调试环境python3.6
# 获取百度新闻数据集import urllibimport refrom bs4 import BeautifulSoupimport jsonimport iofeedlist=[ 'http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss&sub=0', #国内焦点 'http://news.baidu.com/n?cmd=1&class=shizheng&tn=rss&sub=0', #时政焦点 'http://news.baidu.com/n?cmd=1&class=gangaotai&tn=rss&sub=0', #港澳台焦点 'http://news.baidu.com/n?cmd=1&class=internews&tn=rss&sub=0', #国际焦点 'http://news.baidu.com/n?cmd=1&class=mil&tn=rss&sub=0', #军事焦点 'http://news.baidu.com/n?cmd=1&class=hqsy&tn=rss&sub=0', #环球视野焦点 'http://news.baidu.com/n?cmd=1&class=finannews&tn=rss&sub=0', #财经焦点 'http://news.baidu.com/n?cmd=1&class=stock&tn=rss&sub=0', #股票焦点 'http://news.baidu.com/n?cmd=1&class=money&tn=rss&sub=0', #理财焦点 'http://news.baidu.com/n?cmd=1&class=financialnews&tn=rss&sub=0', #金融观察焦点 'http://news.baidu.com/n?cmd=1&class=internet&tn=rss&sub=0', #互联网焦点 'http://news.baidu.com/n?cmd=1&class=rwdt&tn=rss&sub=0', #人物动态焦点 'http://news.baidu.com/n?cmd=1&class=gsdt&tn=rss&sub=0', #公司动态焦点 'http://news.baidu.com/n?cmd=1&class=housenews&tn=rss&sub=0', #房产焦点 'http://news.baidu.com/n?cmd=1&class=gddt&tn=rss&sub=0', #各地动态焦点 'http://news.baidu.com/n?cmd=1&class=zcfx&tn=rss&sub=0', #政策风向焦点 'http://news.baidu.com/n?cmd=1&class=fitment&tn=rss&sub=0', #家居焦点 'http://news.baidu.com/n?cmd=1&class=autonews&tn=rss&sub=0', #汽车焦点 'http://news.baidu.com/n?cmd=1&class=autobuy&tn=rss&sub=0', #新车导购焦点 'http://news.baidu.com/n?cmd=1&class=autoreview&tn=rss&sub=0', #试驾焦点 'http://news.baidu.com/n?cmd=1&class=sportnews&tn=rss&sub=0', #体育焦点 'http://news.baidu.com/n?cmd=1&class=nba&tn=rss&sub=0', #NBA焦点 'http://news.baidu.com/n?cmd=1&class=worldsoccer&tn=rss&sub=0', #国际足球焦点 'http://news.baidu.com/n?cmd=1&class=chinasoccer&tn=rss&sub=0', #国内足球焦点 'http://news.baidu.com/n?cmd=1&class=cba&tn=rss&sub=0', #国内篮球焦点 'http://news.baidu.com/n?cmd=1&class=othersports&tn=rss&sub=0', #综合体育焦点 'http://news.baidu.com/n?cmd=1&class=olympic&tn=rss&sub=0', #奥运焦点 'http://news.baidu.com/n?cmd=1&class=enternews&tn=rss&sub=0', #娱乐焦点 'http://news.baidu.com/n?cmd=1&class=star&tn=rss&sub=0', #明星焦点 'http://news.baidu.com/n?cmd=1&class=film&tn=rss&sub=0', #电影焦点 'http://news.baidu.com/n?cmd=1&class=tv&tn=rss&sub=0', #电视焦点 'http://news.baidu.com/n?cmd=1&class=music&tn=rss&sub=0', #音乐焦点 'http://news.baidu.com/n?cmd=1&class=gamenews&tn=rss&sub=0', #游戏焦点 'http://news.baidu.com/n?cmd=1&class=netgames&tn=rss&sub=0', #网络游戏焦点 'http://news.baidu.com/n?cmd=1&class=tvgames&tn=rss&sub=0', #电视游戏焦点 'http://news.baidu.com/n?cmd=1&class=edunews&tn=rss&sub=0', #教育焦点 'http://news.baidu.com/n?cmd=1&class=exams&tn=rss&sub=0', #考试焦点 'http://news.baidu.com/n?cmd=1&class=abroad&tn=rss&sub=0', #留学焦点 'http://news.baidu.com/n?cmd=1&class=healthnews&tn=rss&sub=0', #健康焦点 'http://news.baidu.com/n?cmd=1&class=baojian&tn=rss&sub=0', #保健养生焦点 'http://news.baidu.com/n?cmd=1&class=yiyao&tn=rss&sub=0', #寻医问药焦点 'http://news.baidu.com/n?cmd=1&class=technnews&tn=rss&sub=0', #科技焦点 'http://news.baidu.com/n?cmd=1&class=mobile&tn=rss&sub=0', #手机焦点 'http://news.baidu.com/n?cmd=1&class=digi&tn=rss&sub=0', #数码焦点 'http://news.baidu.com/n?cmd=1&class=computer&tn=rss&sub=0', #电脑焦点 'http://news.baidu.com/n?cmd=1&class=discovery&tn=rss&sub=0', #科普焦点 'http://news.baidu.com/n?cmd=1&class=socianews&tn=rss&sub=0', #社会焦点 'http://news.baidu.com/n?cmd=1&class=shyf&tn=rss&sub=0', #社会与法焦点 'http://news.baidu.com/n?cmd=1&class=shwx&tn=rss&sub=0', #社会万象焦点 'http://news.baidu.com/n?cmd=1&class=zqsk&tn=rss&sub=0', #真情时刻焦点]def getrss1(feedlist): for url in feedlist: info={} info[url]={ 'title':'', 'allitem':[] } try: response=urllib.request.urlopen(url) text = str(response.read(), encoding='utf-8') soup = BeautifulSoup(text, 'lxml') title = soup.title info[url]['title']=title for item in soup('item'): try: print(item) suburl={ 'title':item('title').replace(']]>','').replace('<![CDATA[',''), 'link': item('link').replace(']]>', '').replace('<![CDATA[', ''), 'source': item('source').replace(']]>', '').replace('<![CDATA[', ''), 'text': item('description').get_text().replace(']]>',''), 'type':title } print(suburl) info[url]['allitem'].append(suburl) except: print('无法匹配'+item) except: print("error: %s" % url)def getrss(feedlist): rss = {} for url in feedlist: rss[url] = { 'title': '', 'allitem': [] } try: response = urllib.request.urlopen(url) text = str(response.read(), encoding='utf-8') soup = BeautifulSoup(text, 'lxml') title = soup.title.get_text() rss[url]['title'] = title patterstr = r'<item>.*?' \ r'<title>(.*?)</title>.*?' \ r'<link>(.*?)</link>.*?' \ r'<source>(.*?)</source>.*?' \ r'<description>.*?<br>(.*?)<br.*?' \ r'</item>' pattern = re.compile(patterstr,re.S) #使用多行模式 results = re.findall(pattern, text) #如何查询多次 if results!=None or len(results)==0: for result in results: suburl = { 'title': result[0].replace(']]>', '').replace('<![CDATA[', ''), 'link': result[1].replace(']]>', '').replace('<![CDATA[', ''), 'source': result[2].replace(']]>', '').replace('<![CDATA[', ''), 'text': result[3].replace(']]>', ''), 'type': title } print(suburl) rss[url]['allitem'].append(suburl) except: print("error: %s" % url) return rss# 形成一个文本描述和分类的数据集。if __name__ == '__main__': rss = getrss(feedlist) jsonstr = json.dumps(rss,ensure_ascii=False) f = io.open('rss.json', 'w', encoding='utf-8') f.writelines(jsonstr) f.close()
阅读全文
0 0
- python爬虫案例系列教程——python爬取百度新闻RSS数据
- (6)Python爬虫——爬取中新网新闻
- python爬虫案例——百度贴吧数据采集
- Python爬虫教程—python爬取糗事百科详解
- python爬虫系列之爬取百度文库(一)
- python爬虫系列之爬取百度文库(二)
- python爬虫系列之爬取百度文库(三)
- python爬虫系列之爬取百度文库(四)
- python爬虫系列(一)百度首页爬取
- python爬虫案例系列教程——根据网址爬取中文网站,获取标题、子连接、子连接数目、连接描述、中文分词列表
- Python爬虫爬取网站新闻
- python爬虫爬取Bloomberg新闻
- python爬虫之爬取腾讯新闻
- Python爬虫爬取百度搜索结果——邮箱地址
- Python爬虫入门系列之——爬取图片
- [python爬虫]使用Python爬取网易新闻
- python 爬虫爬取腾讯新闻科技类的企鹅智酷系列(1)
- Python爬虫学习(一)——爬取新浪新闻
- mac 电脑的android studio 启动的时候报错
- Collapsed Gibbs Sampling
- Tensorflow加载多个模型
- Springboot入门之数据访问层
- Zookeeper学习梳理
- python爬虫案例系列教程——python爬取百度新闻RSS数据
- 基于 Ubuntu 搭建 VNC 远程桌面服务
- machine learning yearning 11 and 12
- unity 长按一个Cube的学习
- Session
- 网狐荣耀版棋牌游戏登录异常签名错误
- 天天学Linux命令57--at命令
- spark平台搭建
- Ambiguous Dates Gym-101522A