想用 pyspider 做点东西,网上的文档都不是很详细。
谁有收藏了 @jason52 大神之前发的《手把手教你写爬虫》系列的视频教程,能不能分享下,现在找不到了。
描述个需求: pyspider 能否提供一个接口给其它应用,应用请求接口提供 URL , pyspider 执行相应的爬取任务,成功后返回数据。
1
coolloves 2016-06-03 12:45:41 +08:00 via Android
同求!!!
|
2
nine 2016-06-03 14:38:59 +08:00 1
新建一个 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 ``` |
3
nine 2016-06-03 14:40:37 +08:00
怎么搞 markdown ?
|
9
Moker 2016-06-03 17:44:23 +08:00
那个系列早期的时候存过 后来我手贱装黑苹果把整个盘都给格了
话说 pyspider 本身就是提供一个 UI 界面供自己用 当然你可以直接 CURD 来生成任务 |
10
nine 2016-06-03 17:46:48 +08:00
我那个对你来说好像比较复杂
你直接定义一个 on_result 方法 def on_result(self, result): super(BaseHandlerRedis, self).on_result(result) |
11
binux 2016-06-04 03:29:32 +08:00 1
pyspider 的定位就是脚本管理,任务管理。
如果「应用请求接口提供 URL , pyspider 执行相应的爬取任务,成功后返回数据」,你干嘛不直接用 requests 请求页面,然后用 pyquery 解析呢。。。 |
12
xummerj OP @binux
您是 pyspider 作者吧,感谢你的回答。 嗯,我有这样的想法的, [应用请求接口提供 URL , pyspider 执行相应的爬取任务,成功后返回数据] 这只是其中一个需求,大的采集需求还是想用 pyspider 来做,平时就是自动采集数据,但是有一个需求是在调取某个数据时进行同步一下,就想解析器等用共同的模块。 因为我看 pyspider 已经是可以通过 url 调用某个采集任务,所以我就想是不是可以通过 url 传参数给任务采集,然后返回数据。 |
14
binux 2016-06-07 17:54:16 +08:00
@xummerj 可以给 pyspider 发送消息,但是返回结果不是同步的,依旧要调度然后结果发给 result_worker 。同步的只能像 webui 那样自己把 fetcher 和 processor 包起来了。
|
16
jason52 2016-07-12 19:37:30 +08:00
额,不好意思,好久没用这个账号登录。之前发的都被百度云给删除了。好奇猫上缓存的貌似也没了。。。
|