python抓取最新博客内容并生成Rss
作者:hebedich 时间:2022-06-18 08:38:40
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,抓取最新博客,生成Rss
0
投稿
猜你喜欢
Python实现的ftp服务器功能详解【附源码下载】
2021-12-23 08:30:55
浏览器的字体等宽空格
2008-08-28 12:25:00
Python如何转换字符串大小写
2021-03-16 17:40:20
MySQL获取系统性能和状态代码
2024-01-13 10:56:18
Python语音合成的项目实战(PyQt5+pyttsx3)
2021-06-15 09:14:13
解决tensorflow打印tensor有省略号的问题
2022-12-13 09:22:09
Python实现从PPT中导出高分辨率图片
2023-01-03 16:29:08
利用Python自动生成PPT的示例详解
2021-10-16 18:25:08
golang 中 channel 的详细使用、使用注意事项及死锁问题解析
2024-04-26 17:26:45
网页标准化-CSS命名规划整理
2007-12-10 18:13:00
python map比for循环快在哪
2021-06-16 09:39:04
mysql 8.0.16 压缩包安装配置方法图文教程
2024-01-14 13:06:39
Python 转换文本编码实现解析
2022-07-15 15:58:49
微信小程序保存图片到相册权限设置
2024-06-16 19:48:50
SQL SERVER的数据类型
2024-01-20 03:40:41
Python3.5字符串常用操作实例详解
2023-08-31 00:25:53
javascript的闭包介绍(司徒正美)
2024-06-05 09:12:21
Python爬虫分析汇总
2022-08-28 06:19:38
Asp中如何设计跨越域的Cookie
2008-10-24 09:46:00
sql2005 数据同步方法
2024-01-15 03:28:54