##技术栈
- Powered by Flask.
- Based on Flask-Boost.
- Use cron to grab data periodically.
- Use feerparser to parse RSS and Atom.
- Use requests and lxml to grab structured data from HTML page.
##开发环境搭建
git clone https://github.com/blogbar/blogbar.git
cd blogbar
virtualenv venv
. venv/bin/activate
pip install -r requirements.txt
bower install
将
db/blogbar.sql
导入本地数据库。
将
config/development_sample.py
另存为config/development.py
,并按需更新配置项。python manage.py run
##扩展
如果一个博客不提供 Feed,但是这个博客的价值又非常高(比如 Livid、王垠、Lifesinger等等),可继承爬取博客的爬虫基类 BaseSpider(位于 spiders/base.py)实现,步骤如下:
####类变量赋值
在子类中对如下类变量重新赋值:
url = "" # 网址
posts_url = "" # 包含博文列表的网址(选填,只有当博客网址与博文列表网址不同时才需填写)
title = "" # 博客标题
subtitle = "" # 博客副标题(选填)
author = "" # 博主
####重载方法
重载如下 2 个方法:
- get_posts:获取博文列表
- get_post:获取单篇博文内容
具体使用方法见 BaseSpider 类,以及用于爬取网页内容的 lxml 库。
####调试
编写过程中如需调试抓取结果,可使用 test_spider.py 提供的测试方法:
- $ python test_spider.py get_posts
- $ python test_spider.py get_post
- $ python test_spider.py all
具体见 test_spider.py。
No comments:
Post a Comment