1

我正在使用 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

PS 我想只是拉 RSS 提要,但 RSS 提要只显示最近的帖子——这意味着我将无法获得早于某个日期的帖子。除非有人知道解决办法?

4

1 回答 1

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 提要?

于 2013-05-26T15:10:58.173 回答