2015-10-22 32 views
-2

从这样的事情...使用Jsoup提取跨度与类似的类

<Head> 
<Body> 
    <div id="content-wrap" class="relative right-side-nav"> 
     ... 
<tr> 
      <td class="indent"><span>Mean Temperature</span></td> 
     <td> 
    <span class="wx-data"><span class="wx-value">55*</span><span class="wx- unit">&nbsp;°F</span></span> 
</td> 
     <td> 

</td> 
     <td>&nbsp;</td> 
     </tr> 

<tr> 
     <td class="indent"><span>Max Temperature</span></td> 
     <td> 
    <span class="wx-data"><span class="wx-value">66</span><span class="wx-unit">&nbsp;°F</span></span> 
</td> 
     <td> 
    <span class="wx-data"><span class="wx-value">59</span><span class="wx-unit">&nbsp;°F</span></span> 
</td> 
     <td> 

</td> 
     </tr> 

我想在“*”又名55 不是66或59 我该怎么办得到的平均温度值这个?

+1

你已经试过了吗? –

+0

我还没有试过寻找方法,但还没有找到任何。 – user3854136

+0

你已经提到'jsoup'作为其中一个标签。你是否熟悉它?您可能熟悉的其他工具:php,python,scrapy,beatifulsoup? –

回答

0

我分享你从this post稍微修改的代码,但为了获得更好的性能,你可以使用xPath approach(int)$list[0]

<?php 
$curl = curl_init('<url of interest>'); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 

$page = curl_exec($curl); 

if(curl_errno($curl)) // check for execution errors 
{ 
    echo 'Scraper error: ' . curl_error($curl); 
    exit; 
} 

curl_close($curl); 
$regex = '#<span class="wx-value">(.*?)<\/span>#gs'; 
if (preg_match_all($regex, $page, $list)) 
    print_r($list); 
else 
    print "Not found"; 
?> 

随后,您可能从55*加入(INT)符号提炼捕获的值到55