![](/img/trans.png)
[英]Web crawler: Using Perl's MozRepl module to deal with Javascript
[英]Perl MozRepl cleanup problem
我正在編寫網絡爬蟲程序,並且我一直在使用WWW :: Mechanize :: Firefox瀏覽某些頁面(其他頁面我使用WWW :: Mechanize),這些頁面在頁面加載后一直在加載內容,而我從來沒有問題。
昨天我在腳本中添加了DBI和DBD :: mysql,添加了查詢以將數據導出到數據庫(這非常有效),但是突然MozRepl開始出現此錯誤:
(in cleanup) Can't call method "execute" on an undefined value at /Library/Perl/5.10.0/MozRepl.pm line 372 during global destruction.
(in cleanup) Can't call method "execute" on an undefined value at /Library/Perl/5.10.0/MozRepl.pm line 372 during global destruction.
並在1個周期后終止腳本(腳本應運行到到達特定文本文件的末尾為止,而不會)。
至少在這一部分中,我沒有涉及到腳本的這一部分(不需要在那些頁面上使用db)。 我檢查了一個文件比較應用程序,無法解決任何問題。
發布代碼可能很棘手,時間很長,我也不知道問題可能出在哪里。
編輯
有時,它還會給出此錯誤,而不是前一個錯誤:
(in cleanup) Can't call method "cmd" on an undefined value at /Library/Perl/5.10.0/MozRepl/Client.pm line 186 during global destruction.
這與DBI或DBD :: mysql無關。消息不必擔心,但我承認它們難看。
這些消息是在Perl全局銷毀期間以無序方式銷毀剩余的Perl / Javascript對象時發出的。 如果要避免它們,請在退出應用程序之前銷毀$mech
對象。
undef $mech;
# end of program
如果$mech
對象在程序關閉之前被釋放,則Perl / Javascript橋也可以有序地關閉。
另請注意,有關WWW :: Mechanize :: Firefox的首選論壇是http://perlmonks.org :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.