node.js - nodejs爬虫下载图片失败
本文介绍了node.js - nodejs爬虫下载图片失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
Hello,everybody~
我在用nodejs写爬虫的时候,想爬取图片(图片的地址:
http://img3.g.pptv.com/a/2015...但是老是提示:
<html>
<head><title>414 Request-URI Too Large</title></head>
<body bgcolor="white">
<center><h1>414 Request-URI Too Large</h1></center>
<hr><center>nginx</center>
</body>
</html>
是指请求的链接过长。但是直接点击却是可以访问到图片的,怎么回事?请问大家这个怎么解决?或者是什么原因。先谢谢了~
这个是我请求的代码~多谢了
var request = require('request');
var fs = require('fs');
var picture_url = "http://img2.g.pptv.com/a/2015/12/14500834484095.jpg";
request(picture_url).pipe(fs.createWriteStream("../../../../abc"));
解决方案
我利用superagent模块发起的get请求是能够正常获取到图片的。请问lz在发起请求的header或是方法?
补充:其实你只是差一个UA,爬虫请务必带上UA,不然太过明显
var request = require('request');
var fs = require('fs');
var picture_url = "http://img2.g.pptv.com/a/2015/12/14500834484095.jpg";
var options = {
url: picture_url,
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
};
request(options)
.on('error', function(err) {
console.log(err)
})
.pipe(fs.createWriteStream('test.png'))
这篇关于node.js - nodejs爬虫下载图片失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文