我正在抓一个足球网站,蜘蛛(一只蜘蛛)从网站的页面中获取了几种项目:Team,Match,Club等.我正在尝试使用CSVItemExporter将这些项目存储在单独的csv文件中,teams.csv ,matches.csv,clubs.csv等.
我不确定这样做的正确方法是什么.到目前为止,我想到的唯一方法是创建我自己的自定义管道,如示例 http://doc.scrapy.org/en/0.14/topics/exporters.html, 并在spider_opened方法中打开所有需要的csv文件,即为每个csv文件创建一个csv导出器,并在process_item中放置代码以确定哪个项目是"item"参数,然后将其发送到相应的导出器对象.
无论如何,我没有找到任何处理scrapy中的多个csv文件(每个项目类型)的例子,所以我担心我以一种不打算使用它的方式使用它.(这是我第一次使用Scrapy).
迪奥梅德斯
我逐渐熟悉nodejs中的流,并且有一个问题:
我认为,这是最简单的nodejs“回显服务器”,即简单地通过管道将其返回到响应流的服务器,无论它通过请求流接收到什么。它有效,但有一个警告。客户端仅在关闭提交流后才收到数据。这是服务器代码:
var http = require('http')
var server = http.createServer(function (req, res) {
req.pipe(res);
});
server.listen(8000);
Run Code Online (Sandbox Code Playgroud)
这是我如何测试它:
做以下工作就好了
term1> node server.js&
term2> echo 'hello world!'|curl --no-buffer --data-binary @- 'http://localhost:8000'
hello world!
Run Code Online (Sandbox Code Playgroud)
但是,它只能工作是因为echo在完成后会关闭其输出文件描述符,即,服务器直到客户端发送完东西之后才会写任何东西:
term2>
term2> yes|curl --no-buffer --data-binary @- 'http://localhost:8000'
Run Code Online (Sandbox Code Playgroud)
(这条线永远卡住了)
我希望yes它将很快填充流缓冲区,因此我将开始看到y很快恢复。不幸的是,他们从来没有这样做。
这是预期的吗?我应该如何使用溪流/管道以达到预期的效果?顺便说一下,我不在乎输出是否会成块返回……我知道那是流(或底层文件I / O)执行缓冲魔术的结果。
谢谢您的帮助
我正在编写一个自定义松弛命令,它实现了一个像界面一样的任务管理器(我知道......那里有很多:-),我的接口有odesk/upwork来外包我的微任务:-)).
无论如何,我非常喜欢/ remind命令在其输出中包含完全删除等链接,以方便后续与输入命令的用户交互,我试图弄清楚如何做同样的技巧.
到目前为止,我所想到的是在我的输出中包含链接... GET /slack-link?method=POST&token=xxx&team_id=xx&command=.. 即在其查询字符串中携带完全json有效负载,松弛将从正常的自定义命令产生.slack-link充当"代理",其唯一的作用是将POST提交回我的正常松弛端点.我甚至可以为这些命令链重用相同的response_url.
我没有尝试过,但我认为这些网址只会打开另一个窗口,以便路径不会正常工作......
以前有人试过这样的事吗?
我想知道如何使用命令行将协作者添加到GitHub中的私人仓库.我在Mac(10.6.8)或Ubuntu 11.04上.