请教 pyspider 问题

2016-06-03 11:36:39 +08:00
 xummerj

想用 pyspider 做点东西,网上的文档都不是很详细。

谁有收藏了 @jason52 大神之前发的《手把手教你写爬虫》系列的视频教程,能不能分享下,现在找不到了。

描述个需求: pyspider 能否提供一个接口给其它应用,应用请求接口提供 URL , pyspider 执行相应的爬取任务,成功后返回数据。

3491 次点击
所在节点    Python
16 条回复
coolloves
2016-06-03 12:45:41 +08:00
同求!!!
nine
2016-06-03 14:38:59 +08:00
新建一个 project
```python
from pyspider.libs.base_handler import *
class BaseHandlerCustom(BaseHandler):
def on_result(self, result):
if result:
#your code
super(BaseHandlerRedis, self).on_result(result)
```

需要运行的 project
```
from projects.redis_handle import *
class Handler(BaseHandlerCustom):
#your code

__handler_cls__ = Handler
```
nine
2016-06-03 14:40:37 +08:00
怎么搞 markdown ?
xummerj
2016-06-03 15:07:39 +08:00
@nine
呃,看不大懂啊这个,能不能说详细点啊, python 菜鸟级别的。。
回复好像不支持 md 的。。
l0wkey
2016-06-03 15:12:11 +08:00
@nine markdown 只能在发帖时候用,回复时候没有
jugelizi
2016-06-03 15:26:34 +08:00
/t/171302

这年头连基本的搜索都不用?
jugelizi
2016-06-03 15:28:12 +08:00
@jugelizi 好吧 视频是没了
xummerj
2016-06-03 17:28:30 +08:00
@jugelizi 就是想要他之前发的视频呢,发现不存在了才来求,看有没有谁收藏起来的
Moker
2016-06-03 17:44:23 +08:00
那个系列早期的时候存过 后来我手贱装黑苹果把整个盘都给格了
话说 pyspider 本身就是提供一个 UI 界面供自己用
当然你可以直接 CURD 来生成任务
nine
2016-06-03 17:46:48 +08:00
我那个对你来说好像比较复杂

你直接定义一个 on_result 方法
def on_result(self, result):

super(BaseHandlerRedis, self).on_result(result)
binux
2016-06-04 03:29:32 +08:00
pyspider 的定位就是脚本管理,任务管理。

如果「应用请求接口提供 URL , pyspider 执行相应的爬取任务,成功后返回数据」,你干嘛不直接用 requests 请求页面,然后用 pyquery 解析呢。。。
xummerj
2016-06-06 09:59:12 +08:00
@binux
您是 pyspider 作者吧,感谢你的回答。
嗯,我有这样的想法的, [应用请求接口提供 URL , pyspider 执行相应的爬取任务,成功后返回数据] 这只是其中一个需求,大的采集需求还是想用 pyspider 来做,平时就是自动采集数据,但是有一个需求是在调取某个数据时进行同步一下,就想解析器等用共同的模块。

因为我看 pyspider 已经是可以通过 url 调用某个采集任务,所以我就想是不是可以通过 url 传参数给任务采集,然后返回数据。
xummerj
2016-06-06 10:11:52 +08:00
@nine 这个是采集结果后的处理吧,那用 URL 传一个采集的目标给采集器,执行抓取任务这个要怎么做呢
binux
2016-06-07 17:54:16 +08:00
@xummerj 可以给 pyspider 发送消息,但是返回结果不是同步的,依旧要调度然后结果发给 result_worker 。同步的只能像 webui 那样自己把 fetcher 和 processor 包起来了。
xummerj
2016-06-08 14:27:24 +08:00
@binux 嗯,谢谢,我研究研究。。
jason52
2016-07-12 19:37:30 +08:00
额,不好意思,好久没用这个账号登录。之前发的都被百度云给删除了。好奇猫上缓存的貌似也没了。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/283202

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX