我正在尝试使用zombie.js在Node中构建一个简单的实用程序来访问页面,查找并打开页面上的所有链接,并确保每个子页面成功返回200。
这是此代码的示例(用 CoffeeScript 编写),爬取 stackoverflow.com 的主页
Browser = require('zombie')
browserOpts =
runScripts: false
site: 'http://www.stackoverflow.com'
home = new Browser browserOpts
home.visit '/', (e, browser) ->
questions = browser.queryAll '#question-mini-list .summary h3 a'
for q in questions
qUrl = q.getAttribute 'href'
page = new Browser browserOpts
page.visit qUrl, (e, browser, statusCode, errors) ->
console.log "Arrived at page #{browser.window.location} and found " + browser.html().length + " bytes"
console.log statusCode
browser.dump()
return
return
如果您尝试运行此代码,您会注意到前几个链接已正确加载,并显示页面中的字节数。
但是,在第一批成功的页面加载(其大小似乎是随机的)之后,所有后续页面加载似乎都visit
过早地执行回调。文档是空的(只是<html><head></head><body></body></html>
),statusCode
回调的参数是undefined
.
我无法解释或弄清楚为什么会这样。任何提示将非常感谢。