Scrapy - 仅限抓取博客帖子

时间:2013-05-26 14:45:25

标签: python web-scraping web-crawler 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提要仅显示最近的帖子 - 这意味着我无法获得比特定日期更早的帖子。除非有人知道解决方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用python-readability之类的图书馆从指定网址中提取所有文章文字,以使其成为“博文”

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源?