1

<span style='display:none;'> で非表示になっている php (file_get_contents?) で Web サイトを読みたい。

4 つの例:

  1. U<span style='display:none;'>wsebv</span><u></u>rfahr
  2. Z<span style='display:none;'>e<i></i>i<span></span>nhv</span><b></b>öhrdorf
  3. B<i></i>a<i></i>b<span></span>e<i></i>n<span style='display:none;'>einhv</span>< u></u>バーグ
  4. K<span style='display:none;'>s<i></i>d<span style='display:none;'>d<span style='display:none;'>b<span style=' display:none;'>n<span style='display:none;'>v<i></i>b<span style='display:none;'>h<i></i>gawe</span ><u></u>aoi</span><b></b>hvws</span><b></b>aoir</span><b></b>asud</span>< b></b>asu</span><b></b>irchdorf/Kr.

結果は次のようになります。

  1. ウルファール
  2. ツェールドルフ
  3. バーベンバーグ
  4. Kirchdorf/Kr.

問題を解決するための2つの可能なアプローチ(ただし、それらを実装する方法はわかりません):
A)コンテンツを含むすべてのスパンタグを削除します
B)VISIBLEコンテンツのみをプログラムで読み取ります

ご協力ありがとうございました!!!

4

2 に答える 2

1

http://sourceforge.net/projects/simplehtmldom/files/latest/download?source=files

include('simple_html_dom.php');

$html = file_get_html('http://www.fussballoesterreich.at/netzwerk/datenservice/379402779304830775_O~733830065019629299~744933674800963515~0~1.htm');

$i = 1;
foreach($html->find('.mannschaft a') as $e)
{
    $x = html_entity_decode($e->innertext, ENT_QUOTES, 'UTF-8');
    $x = preg_replace('#<(.*)>#', '', $x);
    echo $i, '. ', $x, '<br />';
    $i++;
}

Result:

1. Garsten
2. S. Valent.ASK
3. Bumgartenberg
4. Neuhofen/Krems
5. Admira
6. Asten
7. Enns
8. Pasching 1b
9. S. Florian 1b
10. SValentin SC
11. Hörsching
12. S Ulrich
13. Wdischgarsten
14. Doppl-Hart

My work here is done.

于 2012-03-15T21:23:34.173 に答える
0

スタイルが適用されているという事実は、違いはありません。PHP にとって、それは単なるテキストの集まりです。

試す:

<?php
$url = 'http://....';  // URL you're scraping.
$html = file_get_contents($url);
$text = strip_tags($html);
echo "<PRE>$text</PRE>";
于 2012-03-15T20:09:39.550 に答える