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实现巡检系统(solaris)示例
Apr 02 Python
Python写的贪吃蛇游戏例子
Jun 16 Python
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
Python生成随机密码的方法
Jun 16 Python
Python实现句子翻译功能
Nov 14 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
想学python 这5本书籍你必看!
Dec 11 Python
python实现DEM数据的阴影生成的方法
Jul 23 Python
python 数据提取及拆分的实现代码
Aug 26 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 Python
详细分析Python可变对象和不可变对象
Jul 09 Python
如何利用python生成MD5并去重
Dec 07 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设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
JavaScript实现查找字符串中第一个不重复的字符
2014/12/29 Javascript
javascript实现自动填写表单实例简析
2015/12/02 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
Python模拟登录12306的方法
2014/12/30 Python
django使用html模板减少代码代码解析
2017/12/12 Python
python实现xlsx文件分析详解
2018/01/02 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
Python3实现二叉树的最大深度
2019/09/30 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
《鱼游到了纸上》教学反思
2014/02/20 职场文书
机械工程师岗位职责
2014/06/16 职场文书
立志成才演讲稿
2014/09/04 职场文书
2014国庆节标语口号
2014/09/19 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
店长岗位职责
2015/02/11 职场文书
2015年个人思想总结
2015/03/09 职场文书
银行求职信模板
2015/03/20 职场文书
无房证明样本
2015/06/17 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript