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写的服务监控程序实例
Jan 31 Python
Pyhton中防止SQL注入的方法
Feb 05 Python
python实现逆波兰计算表达式实例详解
May 06 Python
在Python的Django框架中更新数据库数据的方法
Jul 17 Python
python实现可以断点续传和并发的ftp程序
Sep 13 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
Python subprocess模块常见用法分析
Jun 12 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
python实现桌面托盘气泡提示
Jul 29 Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
Python lxml模块的基本使用方法分析
Dec 21 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数组添加元素方法小结
2014/12/20 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
Javascript 遍历对象中的子对象
2009/07/03 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python解析中国天气网的天气数据
2014/03/21 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
numpy中的高维数组转置实例
2018/04/17 Python
python logging日志模块以及多进程日志详解
2018/04/18 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python 实现try重新执行
2019/12/21 Python
python基于opencv检测程序运行效率
2019/12/28 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
python元组拆包实现方法
2021/02/28 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
公司经理任命书
2014/06/05 职场文书
2015-2016年小学教导工作总结
2015/07/21 职场文书
2015年除四害工作总结
2015/07/23 职场文书
配置nginx负载均衡
2022/05/06 Servers