按照http://blog.fens.me/nodejs-crawler-douban/的方法做了一个网页crawler,用来从blog上扒文章。做之前和之中遇到了几个小问题,记录在此。
1. JS做爬虫不存在跨域问题吗?
nodejs是后台应用,运行在服务器上而不是浏览器里,所以没有跨域问题。
2. 上面连接是在linux下的,我是在win里面,引入jsdom、jquery依赖这里出现问题,具体情况及解决方法见
http://blog.csdn.net/salmonellavaccine/article/details/43522193
3. 按上面的页面做出来的爬虫爬别的页面没有问题,唯独http://blog.designashirt.com和http://photos.designashirt.com这两个页面没有返回任何响应。
后来我输出了response.statusCode,看到了403,原来是这两个页面不允许爬。
在request中加上headers:{'User-Agent': 'requests'},也就是request({url:url, headers:{'User-Agent': 'requests'}}, function(error, response, body){}),模拟浏览器访问这两个页面,就可以得到页面内容了。
具体代码在这里:https://github.com/shaosh/crawlers