ターゲット ページ: http://www.weather.com.cn/weather/101070101.shtml
その Web ページのソース コードを表示し、425 行のデータを取得したいとします。つまり、「今日は 10 月 16 日水曜日です」 、2013 年、陰暦 9 月 12 日」と 621 行目「瀋陽天気予報 (2013-10-16 18:00 リリース)」および 641 行目から 765 行目までの主要データ。それを表すために図を使用します。下の図を参照してください:
さらに、自分でルールを書いて、「瀋陽天気予報 (2013-10-16
11:00 リリース)」のようなデータを取得しようとしましたが、入力後は空の配列になります。ご案内ください。ありがとう!
1
$s=file_get_contents('http://www.weather.com.cn/weather/101070101.shtml');preg_match('/<h1 class="weatheH1" id="live">\s+(.+)\s+<\!--today5-->/s',$s,$m);echo $m[1];
preg_match('/<div class="weatherYubao" id="7d">\s+<h1 class="weatheH1">\s+(.+?)\s+<span>/s',$s,$m);echo $m[1];
正則化はとてもハイエンドだといつも感じていました
1
$s=file_get_contents('http://www.weather.com.cn/weather/101070101.shtml');preg_match('/<h1 class="weatheH1" id="live">\s+(.+)\s+<\!--today5-->/s',$s,$m);echo $m[1];
preg_match('/<div class="weatherYubao" id="7d">\s+<h1 class="weatheH1">\s+(.+?)\s+<span>/s',$s,$m);echo $m[1];
以下のソースコード:
<!--day 1--> <table class="yuBaoTable" width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="15%" rowspan="2" class="t0" style="background:#f4f7fc;"><a title="农历九月十二">16日星期三</a></td> <td width="12%" style="background:#f4f7fc;">白天</td> <td width="10%"> <a href="http://www.weather.com.cn/static/html/legend.shtml" target="_blank"> <img src="/m2/i/icon_weather/29x20/d00.gif" /> </a> </td> <td width="18%"><a href ="http://baike.weather.com.cn/index.php?doc-view-767.php" target="_blank">晴</a></td> <td width="15%"> <a href="http://baike.weather.com.cn/index.php?doc-view-1148.php" target="_blank"> <b>高温 <strong>12℃</strong></b> </a> </td> <td width="15%"> <a href="http://baike.weather.com.cn/index.php?doc-view-778.php" target="_blank"> 东北风 </a> </td> <td width="15%"> <a href="http://baike.weather.com.cn/index.php?doc-view-778.php" target="_blank"> 微风 </a> </td> </tr> <tr> <td style="background:#f4f7fc;">夜间</td> <td> <a href="http://www.weather.com.cn/static/html/legend.shtml" target="_blank"> <img src="/m2/i/icon_weather/29x20/n00.gif" /> </a> </td> <td><a href ="http://baike.weather.com.cn/index.php?doc-view-767.php" target="_blank">晴</a></td> <td> <a href="http://baike.weather.com.cn/index.php?doc-view-1386.php" target="_blank"> <span>低温 <strong>-2℃</strong></span> </a> </td> <td> <a href="http://baike.weather.com.cn/index.php?doc-view-778.php" target="_blank"> 东北风 </a> </td> <td> <a href="http://baike.weather.com.cn/index.php?doc-view-778.php" target="_blank"> 微风 </a> </td> </tr> </table> <!--day 2-->
また小さな問題が見つかりました (下の写真を参照)。対処方法がわかりませんか?
小さな問題も見つかりました (下の写真を参照) が、解決方法がわかりません。
echo preg_replace('/ s+/s','',$result[1]);
3
preg_match_all('/<table class="yuBaoTable" width="100%" border="0" cellspacing="0" cellpadding="0">(.+)<\/table>/isU',$s,$m); echo join('<br>',array_map('strip_tags',array_slice($m[1],0,3)));
ああ、書き間違えました。最初の行は echo preg_replace('/ s+/s','',$result2[1]); である必要があります
質問 3
これら 2 行が実行された後も、まだ小さな欠陥があり、多くの不要な行があります。改行は存在します。削除できますか? (以下のソースコードを参照)
今天是2013年10月17日 星期四 农历九月十三 沈阳天气预报 (2013-10-1708:00发布) 17日星期四 白天 晴 高温 16℃ 西南风 微风 夜间 晴 低温 3℃ 西南风 微风 <br> 18日星期五 白天 晴 高温 18℃ 西南风 3-4级 夜间 多云 低温 6℃ 西南风 3-4级 <br> 19日星期六 白天 阵雨 高温 15℃ 西南风 3-4级 夜间 多云 低温 4℃ 西南风 微风
echo preg_replace('/s+/s','',join('
',array_map('strip_tags',array_slice($m[1],0, 3 ))));
echo preg_replace('/s+/s','',join('
',array_map('strip_tags',array_slice($m[1],0,3))) ) ;
改行は削除されますが、端はすべて一緒になります
沈阳天气预报 (2013-10-1711:00发布)17日星期四白天晴高温16℃西南风微风夜间晴低温3℃西南风微风<br>18日星期五白天晴高温18℃西南风3-4级夜间多云低温6℃西南风3-4级<br>19日星期六白天阵雨高温15℃西南风3-4级夜间多云低温4℃西南风微风
実装するのが簡単でない場合は、忘れてください。これで問題ありません。何と言えばいい?本当にありがとうございます
echo preg_replace('/s+/s',' ',join('
',array_map('strip_tags',array_slice($m[1],0,3))));