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入门教程之运算符与控制流
Aug 17 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
Python3实现转换Image图片格式
Jun 21 Python
在Python中如何传递任意数量的实参的示例代码
Mar 21 Python
python3转换code128条形码的方法
Apr 17 Python
linux中如何使用python3获取ip地址
Jul 15 Python
Django urls.py重构及参数传递详解
Jul 23 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
Python文件夹批处理操作代码实例
Jul 21 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 11 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 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实现的折半查询算法示例
2017/10/09 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
ExtJS 入门
2010/10/29 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
node网页分段渲染详解
2016/09/05 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
初学python数组的处理代码
2011/01/04 Python
Python and、or以及and-or语法总结
2015/04/14 Python
python版本的读写锁操作方法
2016/04/25 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
Python标准库itertools的使用方法
2020/01/17 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
详解python UDP 编程
2020/08/24 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
Delphi笔试题
2016/11/14 面试题
护士自我介绍信
2014/01/13 职场文书
作文评语集锦大全
2014/04/23 职场文书
大学生村官演讲稿
2014/04/25 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
社会实践单位意见
2015/06/05 职场文书
个人收入证明范本
2015/06/12 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang