Node.jsの中ではてぶのRSSを取得しようとすると毎回取得に失敗するのですがどうすれば取得できるのでしょうか?
rss url 例 http://b.hatena.ne.jp/search/text?q=医療&mode=rss&threshold=30&sort=recent
route/index.js
1var express = require('express'); 2var http = require('http'); 3//var FeedParser = require('feedparser'); 4var router = express.Router(); 5var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 6var $ = require('jquery'); 7 8 9/* GET home page. */ 10router.get('/', function(req, res, next) { 11 console.log(req.query) 12 console.log(req.query.url); 13 var xhr = new XMLHttpRequest(); 14 xhr.open("GET", "http://b.hatena.ne.jp/entry/json/?url="+req.query.url, true); 15 xhr.onload = function (e) { 16 var entry = JSON.parse(xhr.responseText); 17 var tags = parseResponce(entry); 18 var max = 0; 19 var tag; 20 for(var key in tags){ 21 if(max < tags[key]) { 22 max = tags[key]; 23 tag = key 24 }; 25 } 26 var FEED_URL = "http://b.hatena.ne.jp/search/text?q=" + tag + "&mode=rss&threshold=30&sort=recent"; 27 console.log(FEED_URL); 28 $.get(FEED_URL, function( data ) { 29 console.log("記事読み込み"); 30 $(data).find("item").each( function () { 31 var el = $(this); 32 console.log(el); 33 }); 34 }).fail(function() { console.log( "error" ); }); 35 console.log(tag); 36 } 37 xhr.send(); 38 res.render('index', { title: 'Express' }); 39}); 40 41function parseResponce(data) { 42 var tags = {}; 43 for (var i = 0; i < data.bookmarks.length; i++) { 44 var tagArray = data.bookmarks[i].tags; 45 for (var j = 0; j < tagArray.length; j++) { 46 var tag = tagArray[j]; 47 if (tag in tags) { 48 tags[tag] += 1; 49 } else { 50 tags[tag] = 1; 51 } 52 } 53 } 54 return tags 55}; 56 57module.exports = router;
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。