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实现合并excel表格的方法分析
Apr 13 Python
python-pyinstaller、打包后获取路径的实例
Jun 10 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
python 实现目录复制的三种小结
Dec 04 Python
pytorch 准备、训练和测试自己的图片数据的方法
Jan 10 Python
Pytorch模型转onnx模型实例
Jan 15 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 Python
Python和Bash结合在一起的方法
Nov 13 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
PHP开发入门教程之面向对象
2006/12/05 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
php 魔术方法详解
2014/11/11 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
jquery offset函数应用实例
2012/11/14 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
微信小程序实现通讯录列表展开收起
2020/11/18 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
Python中模块string.py详解
2017/03/12 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
室内设计专业学生的自我评价分享
2013/11/27 职场文书
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
信息技术教学反思
2014/02/12 职场文书
个人课题方案
2014/05/08 职场文书
给校长的建议书100字
2014/05/16 职场文书
爱心捐助倡议书
2014/05/19 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang