我想抓取特定字段的所有博客网站。例如。标题,描述,标签,日期,作者等。我在python中使用scrapy库。
现在每个网站的HTML都会有所不同。我不会总是在h1标签中获得头衔。每个博客网站都有不同的格式。我没有固定数量的网站要抓取。此外,每当我想要抓新网站时,我都不想更改代码。
我应遵循哪些最佳做法/设计模式,以确保我最终遇到更少的问题/挑战。我可以使用Factory模式,最终在每个站点的不同类中。我不想这样做,因为它再次需要开发人员的参与。
我正在寻找可以减少人类参与的解决方案。
答案 0 :(得分:1)
不完全是工厂模式,但在减少人力设置和维护环境方面,您可能希望查看https://scrapinghub.com/scrapy-cloud/作为托管,运行和管理不同蜘蛛的地方
实际上,在减少重写工作量方面,我了解到我通常会有一到两个导航代码和第三个数据集合定义
这有助于减少在不同站点收集类似数据的重写工作。
这样一来,大部分时间花在研究如何最好地导航,然后定制数据收集的xpath,而不是每次都必须完全重写。
希望有所帮助...
答案 1 :(得分:1)
有很少的软件包可以做到这一点,但大多数只是围绕lxml的聪明算法。最知名的可能是newspaper,它是专为文章设计的,但它也适用于博客等。
对于scrapy,你可能想放弃报纸用来使用异步scrapy下载器的下载机制。