Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 处理web抓取中的无效字符_Ruby On Rails_Ruby_Web Scraping_Mechanize - Fatal编程技术网

Ruby on rails 处理web抓取中的无效字符

Ruby on rails 处理web抓取中的无效字符,ruby-on-rails,ruby,web-scraping,mechanize,Ruby On Rails,Ruby,Web Scraping,Mechanize,我已经编写了一个web scraper,它使用Nokigiri和Mechanize从网站中提取大量信息,并输出一个数据库种子文件。不幸的是,我发现源网站上的文本中有很多无效字符,比如keppnisÃalf find,Scémario和KlÃring,这会阻止种子文件运行。种子文件太大,无法进行搜索和替换,因此如何处理此问题?我认为这些是html字符,您只需编写清除字符的函数即可。这取决于编程平台这些几乎肯定是UTF-8字符;这些词应该看起来像凯普尼斯芬德、塞马里奥和吉隆坡。有问题的网站可能正在

我已经编写了一个web scraper,它使用Nokigiri和Mechanize从网站中提取大量信息,并输出一个数据库种子文件。不幸的是,我发现源网站上的文本中有很多无效字符,比如
keppnisÃalf find
Scémario
KlÃring
,这会阻止种子文件运行。种子文件太大,无法进行搜索和替换,因此如何处理此问题?

我认为这些是html字符,您只需编写清除字符的函数即可。这取决于编程平台

这些几乎肯定是UTF-8字符;这些词应该看起来像凯普尼斯芬德、塞马里奥和吉隆坡。有问题的网站可能正在发送UTF-8,但没有将其声明为编码,在这种情况下,您必须强制Mechanize对没有声明编码的网站使用UTF-8。但是,如果您遇到其他没有声明编码的网站,并且它们发送UTF-8以外的内容,则可能会使问题变得复杂。

所有数据都来自同一个网站。我尝试使用
agent.get(“http://website.com)agent.page.encoding='utf-8'
但我看不到任何变化。我认为它们不是HTML字符,因为我试图使用HTMLEntities转换:,但它没有转换它们。