关于使用 nodejs 抓 Rss 数据以及 Rss 正文的注意事项

注意事项:

1、request 模块的中文编码缺陷:使用 requset 去获取中文 html 的时候,要把 encoding 设置为 null ,然后使用 iconv 或者 iconv-lite 转码,否则会出现乱码

            request({
                url: feed,
                timeout: 100000,
                poll: false,
                encoding: null
            },
            function (err, res, body) {
                if (!err && res.statusCode == 200) {
                    var bodyDecode = iconvLite.decode(body, ‘utf-8‘),
                        $ = cheerio.load(bodyDecode, {decodeEntities: false})
                }
            });

2、cheerio 模块加载中文 html 的时候会自动把中文解码为 Unicode,中文全部被转义成 &#xNNNN ,一大坑。使用 load( html ) 的时候要设置为

var $ = cheerio.load(bodyEncoding, {decodeEntities: false});

暂时遇到两个比较难搞的问题,希望大神指点。

相关链接:https://github.com/yeoman/generator/issues/638

时间: 2024-11-18 23:40:21

关于使用 nodejs 抓 Rss 数据以及 Rss 正文的注意事项的相关文章

nodejs抓取数据一(列表抓取)

纯属初学...有很多需要改进的地方,请多多指点... 目标是抓取58同城 这个大分类下的列表数据: http://cd.58.com/caishui/?PGTID=14397169455980.9244072034489363&ClickID=1 简单分析: 1. 按照以下二级分类来获取每个列表的数据, 2. 主要分页: 可以看出,其分页是pn5 这里设置的,那么这个5就是页码了. http://cd.58.com/dailijizh/pn5/?PGTID=1177429071887065549

nodejs抓取数据二(列表解析)

这里做得比较暴力,没有分页取出数据解析,O(∩_∩)O哈哈~,居然没有被挂机.不过解析的坑特别多...不过大部分我想要的数据都拿到了. //解析列表数据 var http = require("http"), cheerio = require("cheerio"), mongoose = require('mongoose'), db = mongoose.createConnection('mongodb://127.0.0.1:27017/crawl58');

解析RSS数据

解析RSS数据 没想到有一天还会进行解析 xml 文件,很是意外.想当初了解这块时,自己并没有太上心,当时 json 称天下.可rss源一直都有存在,而这也是一种数据源,没必要再单独去开发后台了. 为此简单了解了一些解析xml数据的api ActiveXObject DOMParser 然后了解了目前的一些插件,大同小异吧.不过有一点需要注意,由于我需要将xml装为json,因而或多或少会有一些问题 一些现有的插件 xml-objTree xml2json xml-js xmlToJson ..

nodejs--实现跨域抓取数据

最近公司安排给我一个任务,抓取页面数据:http://survey.finance.sina.com.cn/static/20205/20131120.html?pid=20205&dpc=1,身为一个前端,还没搞过后台的东西,硬着头皮接下之后,就到网上各种找方法了.最终找到一个nodejs的方法,经过实践之后,觉得非常好用,所以分享给大家.此教程从0开始 ,适用于从来还没接触过nodejs的童鞋!1.先下载 nodejs,这个不多说,然后双击安装文件安装.下载地址:http://www.nod

[ASP.Net]用RssToolKit2.0解析RSS,制作RSS阅读器

在Python要读取RSS可以使用FeedParser.那么在ASP.net里面呢?难道我们要自己发出request去取得XML,并且自己用XmlReader去解析XML里面的DOM对象吗? 当然不用这么麻烦啰. 在ASP.net里面,我们可以使用RssToolkit 2.0,这是一个开放源代码(Open Source)的RSS处理函数库.里面提供了很完善的RSS处理函数.你可以自己烧制RSS feed,也可以透过它去解析RSS. HI!我是finalevil,这是我的分站, 欢迎您订阅我的RS

python自然语言处理1——从网络抓取数据

python自然语言处理1--从网络抓取数据 写在前面 本节学习python2.7 BeautifulSoup库从网络抽取数据的技术,检验之简而言之就是爬虫技术.网络编程是一门复杂的技术,在需要基础的地方,文中给出的链接地址,都是很好的教程,可以参考,我在这里不在重复发明轮子.本节的主旨在于: 帮助快速掌握基本爬虫技术,形成一条主线,能为自己的实验构造基础数据.掌握爬虫技术后,可以从网络抓取符合特定需求的数据供分析,这里学习的爬虫技术适用于数据挖掘.自然语言处理等需要从外部挖掘数据的学科. 1.

从网页抓取数据的一般方法

首先要了解对方网页的执行机制 ,这能够用httpwacth或者httplook来看一下http发送和接收的数据.这两个工具应该说是比較简单易懂的.这里就不再介绍了.主要关注的内容是header和post的内容.通常会包括cookie,Referer页面和其它一些乱其八糟可能看不懂的变量,还有就是正常交互的參数,比方须要post或者get的querystring所包括的东西. httplook和httpwacth 网上有非常多下载的,这里推荐使用httpwach,由于能够直接嵌入到ie中,个人认为

python抓取数据,python使用socks代理抓取数据

在python中,正常的抓取数据直接使用urllib2 这个模块: import urllib2 url = 'http://fanyi.baidu.com/' stream = urllib2.urlopen(url) cont = stream.read() print cont 如果要走http代理的话,我们也可以使用urllib2,不需要引用别的模块: import urllib2 url = 'https://clients5.google.com/pagead/drt/dn/dn.j

nodejs构建mock数据

Nodejs构建mock数据并通过rest api风格调用接口访问数据 如果我们只有json格式的数据文件,我们想通过访问url方式调用居然数据 确保电脑安装node环境 如果你没有安装好node环境请移步http://nodejs.cn/ 一.安装json-server 1.新建demo文件 cd demo 2.安装json-server npm install -S json-server 3.项目demo目录下,新建一个 JSON 文件data.json和一个package.json文件