2016-09-21 20 views
0

グラブタグと特定のプロパティ名との間のテキストや保存、私はすべての製品が表示されます上記のURLにURL <a href="http://www.tokopedia.com/lbagstore" rel="nofollow">http://www.tokopedia.com/lbagstore</a></p> <p>におけるすべての製品名を取得したい場合、私は、疑問を持っている

I [ソースの表示]メニューの製品名で参照することは、私は以下のようなPHPスクリプトを持って

タグの間
<b itemprop="name"> [product name] <b> 

です:

<? 
$html=file_get_contents("https://www.tokopedia.com/lbagstore"); 
preg_match("'<b itemprop=\"name\">(.*?)</b>'si", $html, $match); 
$productname = $match[1]; 
echo $productname; 
?> 

しかし、それはすべての空白ページのようです。

私は、配列に入れ、それらをすべて

を表示することが特に困難を持っている誰もがこのコードを修正するために私を助けることができるのでしょうか?ありがとう!

+3

シンプルです。正規表現は使用しないでください。 DOMとXPATHを使います: '// b [@ itemprop =" name "]/text()' –

+0

お返事ありがとうございます。私は本当に完全なコードの仲間が心配する必要があります – Devisy

+3

http://php.net/dom –

答えて

1

"SOURCE CODEの表示"ではなく、ページのHTMLコードを "検査"しています。ウェブサイトからデータを抽出するには、そのソースコードを表示し、正規表現を使用してデータを取得する必要があります。

自分でコードをチェックしたところ、<b itemprop="name"> [product name] <b>がソースコード内に存在しないため、結果が得られません。そのコードを見るための唯一の方法は、ソースコードの代わりに表示されるコードを検査することでした)

コードを変更すると、実際のコードの外観を確認することができます。あなたが望む製品の名前を取得する正規表現を適応させることができます。

$html = "https://www.tokopedia.com/lbagstore"; 
var_dump($html); 
preg_match("'<b itemprop=\"name\">(.*?)</b>'si", $html, $match); 
$productname = $match[1]; 
echo $productname; 

テキストを表示するためにvar_dumpを追加するだけです。また、あなたがウェブサイトから望むものをスクラップできず、すばやく行う必要がある場合は、「grepsr」という無料のGoogle Chrome拡張機能(https://chrome.google.com/webstore/search/grepsr)を試してみると、製品の名前を抽出できます5分以内に

編集:ページ内のすべての製品の名前を取得する場合は、preg_matchの代わりにpreg_match_all()を使用する必要があります。

これは役に立ちます。

+1

こんにちはアレックス..私は試した2つの答えがあります:最初にvar_dumpを使用することは素晴らしいですが、次のページにつかむのが難しいです。あなたの2番目のソリューションはとても素晴らしいです。私は、リンクをクリックしたときにすべての詳細を取得する方法を学びます。おかげであなたは私を救ったaleX – Devisy

+0

あなたは大歓迎です。 – Alex

関連する問題

 関連する問題