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连接mysql数据库示例(做增删改操作)
Dec 31 Python
简单讲解Python中的闭包
Aug 11 Python
python 添加用户设置密码并发邮件给root用户
Jul 25 Python
Centos7 Python3下安装scrapy的详细步骤
Mar 15 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
python树的同构学习笔记
Sep 14 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
浅谈PyTorch中in-place operation的含义
Jun 27 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 各种应用乱码问题的解决方法
2010/05/09 PHP
PHP获取url的函数代码
2011/08/02 PHP
PHP实现微信发红包程序
2015/08/24 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
PHP MySql增删改查的简单实例
2016/06/21 PHP
JS日历 推荐
2006/12/03 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
原生js实现日历效果
2020/03/02 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
快速入手Python字符编码
2016/08/03 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
python实现excel读写数据
2021/03/02 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python多线程并发及测试框架案例
2019/10/15 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
仓库保管员岗位职责
2013/12/20 职场文书
2014自主招生自荐信策略
2014/01/27 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
总经理聘用协议书
2015/09/21 职场文书