python爬虫案例——python爬取百度新闻RSS数据
全栈工程师开发手册 (作者:栾鹏)
python教程全解
各RSS网站参考http://blog.csdn.net/luanpeng825485697/article/details/78737510
今天我们使用python3.6来爬去百度新闻RSS中的数据,有了数据集,这样可以对样本数据集进行分类、聚类、推荐算法的学习
调试环境python3.6
# 获取百度新闻数据集
import urllib
import re
from bs4 import BeautifulSoup
import json
import 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.titleinfo[url]['title']=titlefor 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'] = titlepatterstr = 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()
python爬虫案例——python爬取百度新闻RSS数据相关推荐
- python 爬虫案例:爬取百度贴吧图片
文章更新于:2020-04-24 注1:打包后的程序(无需python环境)下载参见:https://ww.lanzous.com/ibvwref 注2:更多爬虫案例参见:https://github ...
- Python爬虫实战之爬取百度贴吧帖子
Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...
- python爬虫案例:抓取网易新闻
此文属于入门级级别的爬虫,老司机们就不用看了. 本次主要是爬取网易新闻,包括新闻标题.作者.来源.发布时间.新闻正文. 首先我们打开163的网站,我们随意选择一个分类,这里我选的分类是国内新闻.然后鼠 ...
- 百度贴吧界面html程序代码,python爬虫例题:爬取百度贴吧评论区图片和视频
百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片想下载呢?或者看到一段视频想进行下载呢? 今天,本期Python教程带大家通过搜索关键字来获取评论区的图片和视频. [二.项目目 ...
- Python爬虫实战之爬取百度音乐歌曲
Python爬虫爬取百度音乐歌曲 整体思路如下: 1.搜索:通过搜索界面输入歌手名字找到歌手的歌曲信息.千千音乐:网址 2.找到歌曲信息:通过遍历歌曲列表信息界面获取每个歌曲的ID,以及歌曲的总数 3 ...
- python爬虫实例之爬取智联招聘数据
这是作者的处女作,轻点喷.... 实习在公司时领导要求学习python,python的爬虫作为入门来说是十分友好的,话不多说,开始进入正题. 主要是爬去智联的岗位信息进行对比分析出java和pytho ...
- python爬取百度百科表格_第一个python爬虫(python3爬取百度百科1000个页面)
以下内容参考自:http://www.imooc.com/learn/563 一.爬虫简介 爬虫:一段自动抓取互联网信息的程序 爬虫可以从一个url出发,访问其所关联的所有的url.并从每个url指向 ...
- python贴吧爬虫-Python 爬虫练习: 爬取百度贴吧中的图片
背景:最近开始看一些Python爬虫相关的知识,就在网上找了一些简单已与练习的一些爬虫脚本 实现功能:1,读取用户想要爬取的贴吧 2,读取用户先要爬取某个贴吧的页数范围 3,爬取每个贴吧中用户输入的页 ...
- Python爬虫案例:爬取携程评论
前言 之前爬取美团,马蜂窝等网站的数据都挺顺利,大众点评(这个反爬机制有点麻烦)在磕磕绊绊中也算成功(重点是网页页数的变化和关键字的隐藏替换)但携程居然遇到了瓶颈. 主要是查看源代码时发现关键商户信息 ...
最新文章
- 微信小程序订单页面下拉刷新上拉分页加载
- 求方程ax2+bx+c的根python_Python,计算 ax^2 + bx + c = 0的根
- Scrum指南新版发布,再添新概念—Product Goal
- 一种混合加密方案在软件授权中的应用
- python画图matplotlib基础笔记
- gentoo linux mldonkey 问题解决
- Redis-08Redis数据结构--基数HyperLogLog
- SAP Fiori My note应用的add to功能的后台ABAP实现
- CentOS_7 安装MySql5.7
- LaneAF | 利用Affinity Field聚类进行车道线实例分割
- 【链表】剑指offer:反转链表
- stringbuffer java API_StringBuffer类
- 手把手编写自己的PHP MVC框架实例教程
- java web个人博客开发(一需求获取和需求分析文档)
- crmeb单商户4.4开目录结构 crmeb二开文档 crmeb二开目录结构
- 节假日查询接口,加班,补班,日期查询,放假,日历
- 安卓手机管理器_安卓如何看撤回的微信
- labelImg打开闪退怎么解决
- 帆软内置数据集实现决策报表联动
- 大一下实验总结(三)
热门文章
- 零基础学python全彩版答案-零基础学Python(全彩版)
- oracle odbc驱动 linux,linux下oracle的odbc驱动的安装与配置
- python怎么将json文件转为xls文件_基于python实现把json数据转换成Excel表格
- vue根据屏幕大小适配表格高度
- vue element-ui只有一条信息时默认选中按钮,且不能取消,多条信息时可以手动选择
- Vue3.0 + Ts 项目框架搭建四:配置 Svg-Icon、Icon图标
- linux分区磁盘大小,Linux对超大容量磁盘进行分区
- jquery ajax实例 php,jquery中各个ajax实例操作
- Java输出表格格式_在Java的System.out中以表格式输出
- 【软考】软考简易版知识点复习指南汇总