【问题标题】:PHP: how to extract content or scrape data sets from website source pagePHP:如何从网站源页面中提取内容或抓取数据集
【发布时间】:2011-10-25 04:13:18
【问题描述】:

我想知道如何使用 php 从网站上抓取源代码的内容。我尝试使用http://simplehtmldom.sourceforge.net/ 并查看How do you parse and process HTML/XML in PHP? 我仍然很难从源代码中获取信息。如您所见,源代码的主页包含作者链接列表,其中包括作者的年份和著作的数量。

<div id="fleft">
    <ul>
    <li><a href="http://www.books.com/john-smith/index.html">John Smith (2011-2012)</a> : 11 books
    <li><a href="http://www.books.com/bobby-bob/index.html">Bobby Bob (2011-2012)</a> : 89 books
    ....
    </ul>
    </div>

我点击 john smith,它会打开 john smith 写的书的列表。

 <h1>John Smith (11 Books)</h1>
    <div id="fleft">

    <ul>
    <li><a href="http://www.books.com/john-smith/best-book.html">Best Book</a>
    <li><a href="http://www.books.com/john-smith/other-best-book.html">Other Best Book</a>
....
    </ul>
    </div>

我点击其中一本书“最好的书”,它会显示书名和作者以及这本书的整个故事。

<div id="bookbox">
<h1>Book : Best Book</h1>

<h2>Aurther : John Smith</h2>
<pre>
story of the best book......
.......
....
the end
</pre>

我希望能够获取所有作者姓名和他们的年份、书籍列表以及书籍的内容。实际上作为数据集。有人可以帮助我或向我展示 php 的代码示例来实现这一点。我想创建一个包含所有作者姓名、他们的生活年份、他们创建的书籍、书名、类别、书籍内容等信息的数据库

【问题讨论】:

  • 有大量的资源可以找到;尝试“php屏幕抓取”
  • @Jonathan Spooner 你能给我举个例子吗=)
  • 你能用simplehtmldom向我们展示你的代码吗,这样我们就知道它为什么不工作了
  • @bumperbox 抱歉,这就是我无法弄清楚它是什么以及如何组合在一起的事情

标签: php database dataset scrape


【解决方案1】:

你应该提到你使用什么方法来获取目标页面的 html,我想你在 $targetHTML 变量中有目标页面的 html

你可以像这样在 dom 中加载它

/*********** Load In Dom *********/
$html = new DOMDocument;
$html->loadHTML($targetHTML);
$xPath = new DOMXPath($html);
/*********** Load In Dom *********/

您可以使用 xpath 从 dom 中加载的 html 中获取所需的数据。

如果你已经在使用这种方法,你可以展示你的代码来找出问题。

问候

【讨论】:

  • 对不起,我还是迷路了。你能给我更多的样品吗?我真的是 PHP 的初学者。
  • 我想知道如何编写代码,使用php加载html,传入html创建一个Dom文档,使用该文档创建一个dom xpath...遍历dom xpath到创建作者数组。
  • 我在此处发布的这段代码会更容易/更好吗...stackoverflow.com/questions/7911095/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多