我试着做三件事。
第一:抓取和存档,至少每天,一组预定义的站点。
第二:对此数据运行通宵批处理python脚本(文本分类)。
第三:向用户公开一个基于Django的前端,让他们搜索抓取的数据。
我一直在使用Apache Nutch/Lucene,但当我可以使用另一个爬虫引擎时,让它与Django很好地配合似乎太难了。
about 950790建议我可以只用Django本身编写爬虫,但我不确定该怎么做。
基本上--对于用Django或现有的python爬虫编写我可以适应的爬虫有什么建议吗?或者我是否应该在第二步中加入“变成Django友好的东西”,并编写一些胶水代码?或者,最后,我应该完全放弃Django吗?不过,我真的需要一些可以从前端快速搜索的东西。
发布于 2009-06-09 18:28:06
如果将django项目的应用程序目录插入到sys.path中,则可以编写利用Django ORM功能的标准Python脚本。我们有一个/admin/目录,其中包含执行各种任务的脚本--在每个脚本的顶部是一个如下所示的块:
sys.path.insert(0,os.path.abspath('../my_django_project'))
sys.path.insert(0,os.path.abspath('../'))
sys.path.insert(0,os.path.abspath('../../'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'然后,只需使用您选择的工具来抓取web,并使用Django数据库API来存储数据。
发布于 2009-06-09 18:52:48
您可以编写自己的爬虫程序,使用urllib2获取页面,使用Beautiful Soup解析HTML查找内容。
下面是一个阅读页面的示例:
http://docs.python.org/library/urllib2.html#examples
下面是一个解析页面的示例:
http://www.crummy.com/software/BeautifulSoup/documentation.html#Parsing HTML
发布于 2009-06-09 18:32:19
如果您不想使用Django ORM编写crawler (或者已经有可用的crawler),您可以在crawler和Django驱动的前端之间共享数据库。
为了能够使用Django admin搜索(和编辑)现有数据库,您应该创建Django模型。这里描述了一种简单的方法:
http://docs.djangoproject.com/en/dev/howto/legacy-databases/
https://stackoverflow.com/questions/971660
复制相似问题