Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

爬虫似乎不会自动结束爬取,爬取完成后无法执行stopWorker #12

Open
wangerzi opened this issue Sep 21, 2017 · 6 comments

Comments

@wangerzi
Copy link

作为测试我配置了$beanbun->UrlFilter,给了一个seed让爬虫自己爬,在规则中大概能匹配7张页面,但是页面抓完之后一直没有执行stopWorker,而且任务管理器中的进程还在。
我尝试使用php start.php stop,在任务管理器中看到爬虫进程已经结束了,但是还是还是没有执行stopWorker();
部分代码:
$bean->stopWorker = function($b){ $b->log('执行了一次stopWorker'); }
表现在:日志文件中并没有'执行了一次stopWorker'

@kiddyuchina
Copy link
Owner

守护模式下不会自动退出,需要手动执行php start.php stop
如果执行了还是没有的话还是贴一下代码吧

@wangerzi
Copy link
Author

wangerzi commented Sep 21, 2017

我刚才才知道之前用的是1.00版本,现在换成1.04执行php start.php stop就会调用stopWorker了,但是在用的过程中还是出现了两个问题。^_^

  1. beanbun-parse(ver 0.01)报错说使用不存在的 Beanbun的静态成员$parse,在Parse.php的第20行:$beanbun::$parser = $this;。我大概看了下,好像并没有用到这个变量的地方,于是把这句话注释掉就可以用了。
  2. 在程序爬完所有符合规则的页面之后,日志当中就一直报curl的错误cURL error 3: <url> malformed (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)。我猜测可能是url格式的问题,于是我在Beanbun.php的源码里的defaultDownloadPage方法里把即将下载的url输出了出来,结果发现程序一直在请求空地址,暂时还没找到这个问题的解决办法~~~~(>_<)~~~~。

@kiddyuchina
Copy link
Owner

第一个的错误级别是 notice 还是 warning 呢?

@wangerzi
Copy link
Author

Fatal error:PHP Fatal error: Access to undeclared static property: Beanbun\Beanbun::$parser in.

@aiwhj
Copy link
Contributor

aiwhj commented Nov 9, 2017

@kiddyuchina packgist的composer包中这个空队列BUG还没更新成最新

@jackwangshukai
Copy link

@kiddyuchina packgist的composer包中这个空队列BUG还没更新成最新

空队列这个bug如何解决

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants