2012-04-26 134 views
-1

我想做一个脚本,它会选择一个随机链接,并从其页面获取一些信息。但试图这样做:采用PHP简单的HTML DOM解析器的随机链接

$html= file_get_html('xxxbh.com/3/overview.aspx';); 
$title = $html->find('.userlist a', 0)->plaintext; 

我发现它不断得到第一个。该网页的HTML是这样的:

<td style="width: 20%; padding-bottom: 5px;"><a href="/item/18243/details.aspx">item.135</a></td> 
<td style="width: 20px;"><im g style="padding: 0pt; float: none; vertical-align: middle;" src="/images/item_X.png"></td> 
<td style="width: 20%; padding-bottom: 5px;"><a href="/item/11272/details.aspx">item.18</a></td> 
<td style="width: 20px;"><im g style="padding: 0pt; float: none; vertical-align: middle;" src="/images/item_X.png"></td> 

有人可以告诉我的方式吗?在此先感谢

+0

你在这里使用了什么类($ html-> find())? – 2012-04-26 02:38:58

+0

$ html-> find('。userlist a',0) - > plaintext; 我不知道为什么,但我可以抓住他们与“userlist a” – oMikR0n 2012-04-26 02:41:42

+0

不,我的意思是什么类是$ html?什么样的对象?你不能只对一个变量字符串做find()。 – 2012-04-26 02:45:05

回答

1

我不知道是否有更多的最佳解决方案,但如果你没有很多的链接,您可以抓住所有的人都作为一个数组,然后选择一个随机:

<?php 
$links = $html->find('.userlist a'); 
$c = count($links); 
$randomLink = $links[mt_rand(0, $c - 1)]; 
+0

我得到:调用一个非对象的成员函数children() – oMikR0n 2012-04-26 03:48:09

+0

@ oMikR0n'$ links [mt_rand(0,$ c-1)]' ? – galymzhan 2012-04-26 03:50:11

+0

谢谢大家:D – oMikR0n 2012-04-26 03:53:50