-2

我看过这个问题,非常好,内容丰富。但是,它没有处理相当常见的情况。

假设我需要抓取大量网站(甚至是同一域中的页面),但该网站的作者对他的代码不够关心,并且有一些严重格式错误的代码“有点用”。我需要从那个网站获取信息。

在这种情况下我该怎么做?理想情况下不去 í͞ń̡͢͡s̶̢̛á̢̕͘ń̵͢҉e̶̸̢̛。

是否可以?我必须恢复到 RegExp 吗?

4

3 回答 3

4

你需要一个 DOM 解析器。PHP 有一个. 然后有一些 替代 (还有更多......只是谷歌他们)。如果需要,您甚至可以运行“乱码 HTML”trhu HTML Purifier

于 2012-07-18T17:23:29.547 回答
0

我不知道您是如何抓取网站的,但使用 RegExp 将允许您向废品代码添加许多条件。这可能需要一些时间,具体取决于足迹的数量和您的 RegExp 技能。

您也可以在站点 HTML 上使用 Tidy,但这也会导致奇怪的结果以及 IMO。

于 2012-07-18T17:28:40.823 回答
0

它必须是PHP吗?Python 有一个很棒的库,叫做Beautiful Soup“你没有写那个糟糕的页面。你只是想从中获取一些数据”)。根据我的经验,我非常推荐它,如果你有选择的话,我会说,写一个快速的 Python 脚本来将你的节点解析成一个你的 PHP 可以拾取的干净文件。

(知道 PHP 在标题中,这并不能直接回答您的问题。抱歉,如果您没有选择(或不喜欢)Python,只是想提供一个不错的选择。)

于 2012-07-18T17:30:54.173 回答