2011-10-25 63 views
0

我想知道如何从网站使用PHP刮掉源代码的内容。我曾尝试使用http://simplehtmldom.sourceforge.net/,也看着How do you parse and process HTML/XML in PHP?我仍然很难从源代码获取信息。正如你所看到的,源代码的主页面包含作者的链接列表,其中包括年份和写入的书籍数量。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> 

我点击约翰史密斯它会打开约翰史密斯写的书籍列表。

<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> 

我点击书“最好的书”之一,它会显示书的标题和aurther和本书的整个故事。

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

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

我希望能够抓住所有的作者姓名,他们的年份,书籍列表以及书籍内容。实际上就是数据集。有人可以帮助我或向我展示php的代码示例以实现此目的。我想创建一个所有作者姓名,年份,他们创建的书籍,书籍标题,类别,书籍内容等信息的数据库。

+0

有大量的资源可以找到;尝试“PHP屏幕刮” –

+0

@Jonathan Spooner你能给我一个这种情况的例子=) – merrill

+0

你可以告诉我们你的代码与simplehtmldom,所以我们可以看到它为什么不工作 – bumperbox

回答

1

您应该提及您使用何种方法获取html目标页面,我想你有目标网页的HTML在$ targetHTML变量

你C和加载它在DOM这样

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

您可以使用XPath在DOM加载HTML获取所需的数据。

如果您已经使用此方法,您可以显示您的代码以找出问题。

Regards

+0

对不起,我仍然失去了。你能给我更多样品吗?我真的是PHP的初学者。 – merrill

+0

我想知道如何通过使用PHP来加载HTML代码,通过HTML创建一个Dom文档,使用该文档来创建一个DOM路径...遍历DOM XML路径来创建一个作者数组。 – merrill

+0

将此代码更容易/更好,我在这里发布... http://stackoverflow.com/questions/7911095/php-how-to-store-list-of-author-in-array-dictionary-web-刮刀 – merrill