@twein89
2017-02-06T01:19:59.000000Z
字数 960
阅读 651
爬虫
NativeHandler
BaseHandler是框架的基类,NativeHandler继承了BaseHandler,主要实现一个用来处理发送来的消息的装饰器msg_task_begin, 并重写on_finish方法使在抓取结束时发送消息。实现在spider_master/mstlibs/native_handler.py
参考api文档
页面解析器pyquery文档
框架作者博客里有pyspider中文系列教程,可以先看这个
注意
如需要发送参数消息给抓取,使用NativeHandler实现逻辑,在on_message方法上加上@msg_task_begin装饰器即可,可保留on_start方法方便调试用。若抓取脚本使用了NativeHandler,须在末尾加上 __handler_cls__ = Handler
,否则不能正常工作
想要调试一个项目比如dm_shows.py这个脚本
可以在本地用pyspider one命令调试,例如pyspider one damai/dm_shows.py
生产环境配置文件是product_config.json
步骤一:git 提交, push
步骤二:ssh spdubt后,进入project/spider_master后,git pull
步骤三:重启项目。pkill pyspider
停止,
sudo nohup /root/.pyenv/versions/venv35/bin/pyspider -c product_config.json &
启动
步骤四:打开http://192.168.199.179:5000/后把修改过的脚本贴到同名项目里,并save,有时会需要修改下crawl_config里面的itag参数
调用on_message方法的api例子
api:
http://192.168.199.179:8000/spider/send-msg-tasks
{
"project_name": "ctrip_room_spider",
"batch_code": "NPR16112900000000059",
"code_list": ["1981155", "1995296"],
"task_type": "S_ROOM_SPIDER"
}