2013-05-26 37 views
1

我正在使用Scrapy来抓取网站,但我想知道是否有办法将其设置为仅抓取网站的博客文章(即不是网页)?我可能会为每个网站创建特定的规则以使其运行,但如果我需要抓取多个网站,这将耗费太多时间。有没有一种方法可以让所有网站上的通用抓取工具只抓取博客文章?我怀疑这一点,但我的手指交叉了一些天才有一个答案。Scrapy - 仅限爬网博客文章

以下是我从Scrapy文档中获得的基本代码。我需要添加什么来完成这项工作?

from scrapy.contrib.spiders import CrawlSpider 

class MySpider(CrawlSpider): 
    name = 'crawlit' 
    allowed_domains = ['example.com'] 
    start_urls = ['http://www.example.com'] 

    def parse_item(self, response): 
     #do something 

P.S.我想拉动RSS源,但RSS源只显示最近的帖子 - 这意味着我将无法获得超过特定日期的帖子。除非有人知道解决方法?

回答

0

你可以使用一个图书馆像python-readability从给定的URL中提取所有文章的文本限定它作为一个“博客文章”

from readability.readability import Document 

def parse_url(self, response): 
    html = response.body 
    readable_article = Document(html).summary() 
    readable_title = Document(html).short_title() 

如果你想从一个网站只有文章,它可能值得检查,看看该网站是否有RSS源?

+0

是的我想过RSS的想法,但RSS源只显示最近的帖子,所以它阻止我变老帖子。 – user2270029