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 相关文章推荐
python3序列化与反序列化用法实例
May 26 Python
python实现自动重启本程序的方法
Jul 09 Python
举例讲解Python中的list列表数据结构用法
Mar 12 Python
深入理解Python单元测试unittest的使用示例
Nov 18 Python
python根据unicode判断语言类型实例代码
Jan 17 Python
全面分析Python的优点和缺点
Feb 07 Python
Python中存取文件的4种不同操作
Jul 02 Python
Python实现账号密码输错三次即锁定功能简单示例
Mar 29 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
django 通过url实现简单的权限控制的例子
Aug 16 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 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获取当前url的具体方法全面解析
2013/11/26 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
smarty简单入门实例
2014/11/28 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
Convert Seconds To Hours
2007/06/16 Javascript
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
微信小程序通过js实现瀑布流布局详解
2019/08/28 Javascript
pyramid配置session的方法教程
2013/11/27 Python
使用cx_freeze把python打包exe示例
2014/01/24 Python
使用Python编写简单网络爬虫抓取视频下载资源
2014/11/04 Python
Python进度条实时显示处理进度的示例代码
2018/01/30 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
利用python画出折线图
2018/07/26 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
python处理写入数据代码讲解
2020/10/22 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
理工科学生的自我评价
2013/12/15 职场文书
公司员工辞职信范文
2015/05/12 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
Nginx 匹配方式
2022/05/15 Servers