当前位置: 首页 > 面试题库 >

Node.JS刮擦编码?

尉迟龙光
2023-03-14
问题内容

我取这个页面与该请求库中的Node.js,并使用解析身体cheerio

调用$.html()已解析的响应正文,发现该页面的title属性为:

<title>Le Relais de l'Entrec?te</title>

…什么时候应该:

<title>Le Relais de l'Entrecôte</title>

我尝试将请求库的选项设置为include encoding: 'utf8',但这似乎并没有改变任何东西。

如何保留这些字符?


问题答案:

该页面似乎是用iso-8859-1编码的。您需要request通过传递encoding: null并使用诸如node-
iconv之
类的东西来告诉您退回未编码的缓冲区。

如果要编写通用搜寻器,则必须弄清楚如何检测遇到的每个页面的编码以正确对其进行解码,否则以下情况应适用于您的情况:

var request = require('request');                                               
var iconv = require('iconv');

request.get({                                                                   
  url: 'http://www.relaisentrecote.fr',                                         
  encoding: null,                                                               
}, function(err, res, body) {                                                   
  var ic = new iconv.Iconv('iso-8859-1', 'utf-8');                              
  var buf = ic.convert(body);                                                   
  var utf8String = buf.toString('utf-8');  
  // .. do something with utf8String ..                                                                             
});


 类似资料:
  • 问题内容: 按计划运行Scrapy使我绕过Twist(ed)。 我以为下面的测试代码可以工作,但是第二次触发蜘蛛时出现错误: 我猜想,作为CrawlerProcess的一部分,Twisted Reactor会在不需要时再次启动,从而导致程序崩溃。有什么办法可以控制吗? 同样在这个阶段,如果有一种自动执行Scrapy Spider的替代方法可以按计划运行,我也很高兴。我试过了,但还是不能让它循环:

  • 问题内容: 到目前为止,我一直只使用scrapy并编写自定义类来使用ajax处理网站。 但是,如果我要使用scrapy-splash,据我所知,它会在javascript之后刮擦呈现的html,那么对我的抓取工具的速度会产生重大影响吗? 用scrapy刮擦香草html页面与使用scrapy-splash渲染javascript html所花费的时间之间的比较是什么? 最后,scrapy-splas

  • 问题内容: 我已经写了很多刮板,但是我不确定如何处理无限滚动条。如今,大多数网站,Facebook,Pinterest等都有无限滚动条。 问题答案: 您可以使用硒来刮除Twitter或Facebook之类的无限滚动网站。 步骤1:使用pip安装Selenium 第2步:使用下面的代码自动执行无限滚动并提取源代码 步骤3:根据需要打印数据。

  • 我试着在一个. asp网站上运行一个蜘蛛,它需要登录授权和一些爬行到同一个网站内的不同页面。我昨天成功地使用我的蜘蛛登录,并正在用不同的功能抓取数据,当我在更改了as功能后再次运行蜘蛛时,蜘蛛停止了工作。我不知道发生了什么,我对网络抓取相当陌生。下面是代码: 以下是日志: 代码曾经能够尝试从页面中抓取一些我想要的数据,但没有成功,但我相信这只是因为我使用了错误的css选择器。现在它只是打开和关闭而

  • 我正在写一个小的抓取程序,它导航到一个包含链接列表的页面, 它单击第一个链接,打开一个新页面,获取一些详细信息,然后导航回包含链接列表的页面,然后尝试查找下一个链接,但我得到: 组织。openqa。硒。StaleElementReferenceException:stale元素引用:元素未附加到页面文档 你知道我该怎么避免吗?

  • 我试图刮一个网站,并保存信息,我目前有两个问题。 首先,当我使用硒点击按钮(在这种情况下是加载更多结果按钮)时,它直到最后才点击,我似乎不知道为什么。 另一个问题是它没有保存到parse_article函数中的csv文件中。 以下是我的代码: