我正在抓取一个足球网站,蜘蛛(一只蜘蛛)从网站的页面上得到了几种物品:球队、比赛、俱乐部等。 我试图使用CSVItemExporter将这些项存储在单独的csv文件中, teams.csv、matches.csv、clubs.csv等
我不知道怎样做才是正确的。 到目前为止,我唯一想到的方法是创建自己的自定义管道,如示例中所示 http://doc.scrapy.org/en/0.14/topics/exporters.html然后在spider-opened方法中打开所有需要的csv文件,即为每个csv文件创建一个csv导出器,并在过程中输入代码以确定“item”参数是什么类型的item,然后将其发送到相应的导出器对象。
无论如何,我还没有找到任何处理多个csv文件(每项类型)的例子,所以我担心,我使用它的方式是不打算使用。(这是我第一次使用Scrapy)。
迪奥米德
你的做法对我来说很好。Piplines是Scrapy的一个很好的特性,我是为类似于您的方法而构建的。
您可以创建多个项(例如SoccerItem、MatchItem),在您的
MultiCSVItemPipeline
中,只需通过检查item类将每个项委托给自己的CSV类。我在这里发布的代码是我用来根据上面drcolosos的答案生成一个
MultiCSVItemPipeline
。此管道假定所有项类都遵循约定*项(例如team Item、EventItem),并创建team.csv、event.csv文件,并将所有记录发送到相应的csv文件。
相关问题 更多 >
编程相关推荐