python抓取最新博客内容并生成Rss


Posted in Python onMay 17, 2015

osc的rss不是全文输出的,不开心,所以就有了python抓取osc最新博客生成Rss

# -*- coding: utf-8 -*-


from bs4 import BeautifulSoup
import urllib2

import datetime
import time
import PyRSS2Gen
from email.Utils import formatdate
import re
import sys
import os
reload(sys)
sys.setdefaultencoding('utf-8')

class RssSpider():
 def __init__(self):
 self.myrss = PyRSS2Gen.RSS2(title='OSChina',
link='http://my.oschina.net',
description=str(datetime.date.today()),
pubDate=datetime.datetime.now(),
 lastBuildDate = datetime.datetime.now(),
items=[]
)
self.xmlpath=r'/var/www/myrss/oschina.xml'

self.baseurl="http://www.oschina.net/blog"
 #if os.path.isfile(self.xmlpath):
#os.remove(self.xmlpath)
 def useragent(self,url):
 i_headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) 
 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36", 
"Referer": 'http://baidu.com/'}
 req = urllib2.Request(url, headers=i_headers)
 html = urllib2.urlopen(req).read()
 return html
 def enterpage(self,url):
 pattern = re.compile(r'd{4}Sd{2}Sd{2}sd{2}Sd{2}')
rsp=self.useragent(url)
soup=BeautifulSoup(rsp)
timespan=soup.find('div',{'class':'BlogStat'})
timespan=str(timespan).strip().replace('n','').decode('utf-8')
match=re.search(r'd{4}Sd{2}Sd{2}sd{2}Sd{2}',timespan)
timestr=str(datetime.date.today())
 if match:
timestr=match.group()
 #print timestr
ititle=soup.title.string
div=soup.find('div',{'class':'BlogContent'})
rss=PyRSS2Gen.RSSItem(
title=ititle,
link=url,
 description = str(div),
 pubDate = timestr
)

 return rss
 def getcontent(self):
rsp=self.useragent(self.baseurl)
soup=BeautifulSoup(rsp)
ul=soup.find('div',{'id':'RecentBlogs'})
 for li in ul.findAll('li'):
div=li.find('div')
 if div is not None:
alink=div.find('a')
 if alink is not None:
link=alink.get('href')
 print link
html=self.enterpage(link)
self.myrss.items.append(html)
 def SaveRssFile(self,filename):
finallxml=self.myrss.to_xml(encoding='utf-8')
file=open(self.xmlpath,'w')
file.writelines(finallxml)
file.close()



if __name__=='__main__':
rssSpider=RssSpider()
rssSpider.getcontent()
rssSpider.SaveRssFile('oschina.xml')

以上所述就是本文的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
python 判断自定义对象类型
Mar 21 Python
python 判断一个进程是否存在
Apr 09 Python
python中pygame模块用法实例
Oct 09 Python
用Python编写一个简单的俄罗斯方块游戏的教程
Apr 03 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Python编程给numpy矩阵添加一列方法示例
Dec 04 Python
对numpy中数组元素的统一赋值实例
Apr 04 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
python之随机数函数的实现示例
Dec 30 Python
python基于opencv实现人脸识别
Jan 04 Python
python解析照片拍摄时间进行图片整理
Jul 23 Python
Python实现遍历数据库并获取key的值
May 17 #Python
Python对列表排序的方法实例分析
May 16 #Python
python中base64加密解密方法实例分析
May 16 #Python
python中threading超线程用法实例分析
May 16 #Python
python实现合并两个数组的方法
May 16 #Python
python简单实现基数排序算法
May 16 #Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 #Python
You might like
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
PHP HTTP 认证实例详解
2016/11/03 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
Python SQLite3简介
2018/02/22 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
python实现canny边缘检测
2020/09/14 Python
python 如何停止一个死循环的线程
2020/11/24 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
说出一些常用的类,包,接口
2014/09/22 面试题
会计电算化专业毕业生自荐信
2013/12/20 职场文书
博士学位自我鉴定范文
2013/12/26 职场文书
乔迁宴答谢词
2014/01/21 职场文书
政府四风问题整改措施
2014/10/04 职场文书
如何写辞职书
2015/02/26 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
Python PIL按比例裁剪图片
2022/05/11 Python