如果我们有多个站点,那么实施scrapy的更好方法是什么?

时间:2016-01-05 12:36:23

标签: python python-2.7 scrapy

如果我们有多个网站有不同的html结构,那么实施scrapy的更好方法是什么?

  1. 我应该根据单个项目中的网站创建多个蜘蛛吗?
  2. 我应该根据网站创建多个项目吗?
  3. 或其他方式,请定义。

2 个答案:

答案 0 :(得分:2)

  1. 不同的网站 - >如果在同一个项目中抓取相同的数据,同一个项目中的不同脚本,这两个脚本都可以驻留并使用相同的管道

  2. 同一网站 - >同一个项目

  3. 不同的网站,不同的数据 - >不同的项目

  4. 相同的网站,不同的数据 - >使用callback

  5. 使用2个功能

答案 1 :(得分:1)

通常你应该在一个项目中创建多个蜘蛛,每个网站一个蜘蛛,但这取决于。

scrapy spider还决定如何从一个页面跳转到另一个页面,而不是应用解析器回调,解析器回调方法将从页面中提取数据。因为页面不一样,所以每个页面都需要一个解析器回调方法。

网站通常有不同的站点地图,因此您需要多个蜘蛛,每个网站一个,将决定如何从一个页面跳转到另一个页面。然而,蜘蛛会应用他们的回调决定如何刮取该页面。

通常您不需要为多个网站创建多个项目,但这取决于。 如果您的网站共享一些逻辑特征,请将它们放在一个项目中,以便它们可以使用相同的scrapy设置。通过这种方式也更容易,您可以创建基本蜘蛛并继承常用方法。