
以下のような構成のページから、前半2つの twitter ,facebook のみを
process '#share_item ul li', 't_url' => '@href';
のような形で抜き出したいのですが、
これだとtwitterからmixi までの情報を一気に取得してしまいます。
process '#share_item ul li', 'twi_url' => '@href';
process '#share_item ul li', 'fb_url' => '@href';
のように、それぞれ分けて取得するよい方法はありますでしょうか?
----------(ここから)---------
<div id="share_item">
<ul>
<li>
<a href="http://twitter.com/share?text=(略)&via=test_mk" target="_blank" onclick="s_omni.trackSNS('twitter')">
<img src="http://aaa.com/btn1.gif" alt="twitterでつぶやく" />
</a>
</li>
<li>
<a href="http://www.facebook.com/share.php?u=http://aaa.c … target="_blank" onclick="s_omni.trackSNS('facebook')"><img src="http://www.aaa.com/common/btn2.gif" alt="facebookでシェア" /></a>
</li>
<li>
<a href="mailto:?subject=
~(略)~alt="
メールで知らせる" />
</a>
</li>
<li>
<a href="http://mixi.jp/recent_voice.pl?from=home_profile" target="_blank" onclick="s_omni.trackSNS('mixi')">
<img src="http://aaa.com/btn4.gif" alt="mixiで知らせる" /></a>
</li>
<li>
<link rel="mixi-check-image" type="image/jpeg" href="http://aaa.com//img/site/3.jpg" />
<a href="javascript:void(0);" onclick="window.open('http://mixi.jp/share.pl?u=http://aaa.com/&k=cf68 …['width=632','height=456','location=yes','resizable=yes','toolbar=no','menubar=no','scrollbars=no','status=no'].join(','));"><img src="http://aaa.com/btn5.gif" alt="mixiチェック"></a>
</li>
</ul>
</div>
----------(ここまで)---------
(2)これは補足的な質問なのですが、
「#share_item ul li」
のように # がつく記述と付かないパターンがあるのですが、
この違い(#が必要な時)が不明です。
ご存知の方、教えて頂ければ幸いです。
No.1ベストアンサー
- 回答日時:
表示がくずれので空白2文字を全角空白にしていることに注意。
use strict;
use warnings;
use utf8;
use Web::Scraper;
use Data::Dumper;
my $html = << 'END_HTML';
<html>
<head>
</head>
<body>
<div id="share_item">
<ul>
<li>
<a href="http://twitter.com/share?text=xxx&via=test_mk" target="_blank" onclick="s_omni.trackSNS('twitter')">twitter</a>
</li>
<li>
<a href="http://www.facebook.com/share.php?u=http://aaa.c" target="_blank" onclick="s_omni.trackSNS('facebook')">face book</a>
</li>
<li>
</li>
<li>
<link rel="mixi-check-image" type="image/jpeg" href="http://aaa.com//img/site/3.jpg" />
<a href="javascript:void(0);"
onclick="window.open('http://mixi.jp/share.pl?u=http://aaa.com/&k=cf68"
src="http://aaa.com/btn5.gif" alt="mixiチェック">mixi</a>
</li>
</ul>
</body>
</html>
END_HTML
my $scraper = scraper {
process '#share_item ul li a[href^="http://twitter.com/"]', 'twi_url' => '@href';
process '#share_item ul li a[href^="http://www.facebook.com/"]', 'fb_url' => '@href';
};
my $res = $scraper->scrape($html) || die "$!";
print Dumper($res);
# $VAR1 = {
# 'twi_url' => 'http://twitter.com/share?text=xxx&via=test_mk',
# 'fb_url' => 'http://www.facebook.com/share.php?u=http://aaa.c target='
# };
> 「#share_item ul li」
> のように # がつく記述と付かないパターンがあるのですが、
> この違い(#が必要な時)が不明です。
「CSS 一意セレクタ」で調べてみて下さい。
この回答への補足
ご回答頂き、誠にありがとうございました。
a[href^="http://twitter.com/ で、href の行頭が「http://twitter.com/」の
データを抜き取る方法ということですね。
私の環境で、全く同じ内容で試してみたのですが
process '#share_item ul li a[href^="http://twitter.com/"]', 'twi_url' => '@href';
を実行すると、↓
--------------------------------------
'//*[@id='share_item']//ul//li//a[@href^='http://twitter.com/']' doesn't look like a valid XPath expression: Query:
//*[@id='share_item']//ul//li//a[@href^='http:...
.....................................^^^
Invalid query somewhere around here (I think)
--------------------------------------
のようにXpath の形式が異なると言われ、正常に取得できませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- その他(IT・Webサービス) html cssについて 3 2023/05/13 12:48
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
T-SQL(SQL Server2000) 月数の...
-
日付の差分の求め方(日、分)
-
当日の日付をプルダウンメニュ...
-
a shower.
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
Tiny Basicのプログラムでもう...
-
SSI にグローバル変数を渡すこ...
-
ダブルクォーテーションの中に...
-
文字の横にプルダウンを表示さ...
-
perl で環境変数を表示できない
-
メモリをアドレスを直接指定し...
-
pythonの初心者です!コマンド...
-
FindFirst を複数条件で検索
-
セレクトメニューについて
-
Pythonの np.indicesに関する質...
-
セレクトメニューで2つの項目...
-
動的ハッシュを作って取り出し...
-
実行時エラー 3020の対策
-
インラインフレーム内へのリンク
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付の差分の求め方(日、分)
-
年月日の数値化?
-
日齢計算プログラム
-
Perlの日付取得で月の表示がお...
-
perl Windows 7でファイルの衝...
-
パールスクリプトのif else文に...
-
perl セレクトメニューを ↓の...
-
perlでcheckboxがうまく整理で...
-
ローカルだと改行されるのに、...
-
サマータイムの判定について
-
Perlの乱数について
-
T-SQL(SQL Server2000) 月数の...
-
ソースの詳細を教えてください。
-
C言語のプログラミングについて...
-
前日の日付取得するには?
-
日付範囲をの連番と月末を取得
-
CSV読み込み時に条件に合う行(...
-
Perl スクレイピング処理につ...
-
月見る月はこの月の月
-
if文データの別ファイル化について
おすすめ情報