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 自动刷博客浏览量实例代码
Jun 14 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
Django开发中的日志输出的方法
Jul 02 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
Python面向对象基础入门之设置对象属性
Dec 11 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
Python Web程序搭建简单的Web服务器
Jul 31 Python
django 快速启动数据库客户端程序的方法示例
Aug 16 Python
python二维键值数组生成转json的例子
Dec 06 Python
Python语言编写智力问答小游戏功能
Oct 13 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
Linux下将excel数据导入到mssql数据库中的方法
2010/02/08 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
JavaScript 的继承
2011/10/01 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
详细分析vue表单数据的绑定
2020/07/20 Javascript
Python中super关键字用法实例分析
2015/05/28 Python
Unicode和Python的中文处理
2017/03/19 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
Overload和Override的区别
2012/09/02 面试题
考试作弊被抓检讨书
2014/01/10 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
党委班子剖析材料
2014/08/21 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python