0

我要做的是从(非版权)网站中提取文本。我只需要特定 div 中的文本。假设 div 被称为“foo”。每个页面上大约有 20 个“foo div”,我想从每个页面中提取文本并输出到页面或外部文本,没关系。

一次做多个页面肯定是一个奖励。

我已阅读此站点上的问题从网站上多个页面上出现的 DIV 中提取文本,然后输出到 .txt?

它似乎与我要问的相似,如果不完全相同的话。但是,不确定这是否会从一页内的多个同名 div 中提取。

我尝试将所有代码复制并粘贴到一个新的 .php 文件中,但没有成功。我在运行时收到错误消息:(

我年轻的时候确实做过几年html,但是我的php技能很基础。

另外,我不需要抓取脚本或任何东西,只需抓取信息即可。如果有多个 URL 的选项,我想手动输入它们。

谢谢

4

2 回答 2

0

我认为这些链接可能对您在 PHP 中进行 HTML DOM PARSING 有所帮助

快速入门
如何创建 HTML DOM 对象?
如何找到 HTML 元素?
如何访问 HTML 元素的属性?
如何遍历 DOM 树?
如何转储 DOM 对象的内容?
如何自定义解析行为?
API 参考
常见问题

ALso here's a example for Scraping from a sample site (www.slashdot.org)

// Create DOM from URL
$html = file_get_html('http://slashdot.org/');

// Find all article blocks
foreach($html->find('div.article') as $article) {
    $item['title']     = $article->find('div.title', 0)->plaintext;
    $item['intro']    = $article->find('div.intro', 0)->plaintext;
    $item['details'] = $article->find('div.details', 0)->plaintext;
    $articles[] = $item;
}

print_r($articles);
于 2013-01-23T10:22:39.373 回答
0

你什么意思foo div?如果您的意思是namediv 的属性值是,foo您可以使用SIMPLE HTML DOM PARSER通过类似查询轻松检索它。

$ret = $html->find('div[name=foo]');

然后,您可以遍历这些结果,将它们存储在您认为合适的任何位置。如果您手动运行脚本,将这些结果直接写入文件可能是个好主意?

上面的简单 dom 解析器链接让您逐步了解如何抓取网站。

为了让我们为您提供帮助,最好发布您的代码,准确的错误信息越多,您可以获得的答案就越好。如果您希望 SO 为您编写解析网页的脚本,您可能会感到失望。

于 2012-06-14T17:24:58.310 回答