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实现给字典添加条目的方法
Sep 25 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
python生成随机图形验证码详解
Nov 08 Python
django2 快速安装指南分享
Jan 05 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
Python爬虫之UserAgent的使用实例
Feb 21 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
基于python代码批量处理图片resize
Jun 04 Python
Python 绘制可视化折线图
Jul 22 Python
Python如何批量生成和调用变量
Nov 21 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 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+mysql 实现身份验证代码
2010/03/24 PHP
php实现图片压缩处理
2020/09/09 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
python执行get提交的方法
2015/04/29 Python
Python 函数基础知识汇总
2018/03/09 Python
python实现聊天小程序
2018/03/13 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
python 发送json数据操作实例分析
2019/10/15 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
小学门卫岗位职责
2013/12/17 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
西门豹教学反思
2014/02/04 职场文书
网络书店创业计划书
2014/02/07 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
安全隐患整改报告
2014/11/06 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB