使用Django Rest Framework将HTML数据作为API提取

时间:2018-04-06 15:47:26

标签: django rest web-scraping django-rest-framework

我正在尝试构建一个面向公众的API,通过抓取HTML来收集数据(页面的内容是重要的,而不是页面本身)。我选择使用Django-Rest-Framework作为我的后端。我的问题是:我究竟如何组织这个项目的结构,以便Django ORM存储已删除的内容,然后可以使用Django-Rest-Framework的API访问它?

我已经研究过Scrapy,但这似乎不太关注内容抓取,而是更专注于网络浏览。此外,它在自己的项目中部署,这与Django的引导冲突。

我最好的选择是跑cronjobs吗?这似乎不太优雅。

1 个答案:

答案 0 :(得分:0)

使用Celery创建异步和定期任务。

如果您需要轻量级的抓取功能,可以使用BeautifulSoup。这是a tutorial

总的来说,这就是你需要做的事情:

  1. 启动普通的Django项目。
  2. 添加芹菜。
  3. 写一些抓取代码。
  4. 从芹菜任务中调用您的自定义抓取代码。将已删除的内容保存到数据库中。
  5. 使用Django-Rest-Framework创建一个API,用于提供数据库中的内容。