![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
phpのgoutteでスクレイピングし、作成したい表があります。
下記の構造で、テーブルが作られています。
■タグ
<table>
<tr><td><a href="URLアドレス" target="_blank" >文字列1</a></td></tr>
<tr><td>文字列2</td></tr>
<tr><td><a href="URLアドレス" target="_blank" >文字列1</a></td></tr>
</table>
上記タグ内容をスクレイピングし、下記のような表を作りたいのです。
ただし、URLアドレス(aタグ)がない場合は、記述しない。
■作成したい表
文字列1,URLアドレス
文字列2,
文字列3,URLアドレス
と表にしてスクレイピングかけたいのですが、
$crawler->filter('table td')->each(function($element) {
$element->text().",";
$element->filter('a')->attr('href').",";
});
と記述すると、a要素がない文字列2の部分で、戻り値がないためエラーになってしまします。
■表示結果
文字列1,URLアドレス
文字列2,▲
三角の部分で、戻り値がないためエラーになってるようです。
空判定を入れてみればいいかと思いやってみたのですが、同じ結果になりダメでした。
※empty()も試してみました。
■ソースコード抜粋
$crawler->filter('table td')->each(function($element) {
$element->text().",";
$judge=$element->filter('a');
if($judge===FALSE){
echo "タイトルにアンカーが未設定で、戻り値が空のためスキップ。<br>";
}else{
echo $element->filter('a')->attr('href').",";
};
});
作成したい表のようにスクレイピングするには、どのようにソースを書き直せばいけるでしょうか?
ご教示お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
REGEXREPLACE関数について、
-
ダブルコーテーション(
-
PHPの¥
-
Smartyで携帯絵文字を表示する方法
-
どなたか私のPHP文章を添削して...
-
文字列の置換をCStringで(C++)
-
空白文字のカンマへの変換について
-
PHP VS Java (パフォーマン...
-
"と'の違い
-
pref_split 正規表現
-
括弧内のカンマを別の文字に置...
-
PHPのGD系の関数で描画し...
-
PHPで「,」を「, 」へ置換した...
-
文字列の括弧について(初心者)
-
不規則なaタグのスクレイピング...
-
VBSで"をエスケープする文字は?
-
正規表現で置換
-
preg_replace関数のtarget属性
-
独自タグに囲まれた文字列の変換
-
上手い置換方法は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
VBSで"をエスケープする文字は?
-
○分から○時間○分に変換
-
文字列の置換をCStringで(C++)
-
PHP・Wordpress preg_replaceを...
-
PHPの¥
-
php 正規表現で、\\マークを取...
-
nl2brが効かないのですが・・・
-
近似した文字列を置換するエク...
-
文字列の括弧について(初心者)
-
ダブルクォーテーションが置換...
-
(から)までの文字列を削除したい
-
c# string型の変数に、ダブルク...
-
PHPで任意の数の行抽出
-
【php】二進数をフラグとして扱...
-
【PHP】preg_replace() で正...
-
2バイトローマ数字小文字につ...
-
文字列から、特定の文字を削除...
-
PHPで文字列をエンコード↔デコ...
-
SQLインジェンクション対応...
おすすめ情報