解析网页中的结果包含无效的格式文本?

时间:2012-08-26 15:39:24

标签: php parsing html-parsing

我在这里尝试解析网页并获取内容.. http://www.reuters.com/finance/stocks/companyOfficers?symbol=AOS

这是我的code进行解析以及附加的样本结果。

现在,如果您在示例结果数组中看到,则在描述字段中,很少有细节格式无效..例如。原始的'描述'包含(“Bemis”)在网页中,但在解析结果中显示为(├ó┬Ç┬£Bemis├ó┬Ç┬¥)(参见样本结果中的描述字段)。检查网址的源代码并尝试搜索“Bemis”。可能是什么原因......如何解决它。我也试过

$html_source = str_replace('“','"',$html_source); 
$html_source = str_replace('”','"',$html_source); 

但无法正确使用..帮我修改代码,以便提供正确的解析结果。

1 个答案:

答案 0 :(得分:1)

在代码的第5行之后添加此代码对我有用:

// First, replace UTF-8 characters.
$html_source = str_replace(
 array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"),
 array("'", "'", '"', '"', '-', '--', '...'),
 $html_source);

// Next, replace their Windows-1252 equivalents.
$html_source = str_replace(
 array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)),
 array("'", "'", '"', '"', '-', '--', '...'),
 $html_source);

感谢这个SO主题中的@Wolfe:Devilish curly quotes