0

大きな文字列 (Web ページの HTML コード) があります。

問題は、画像へのリンクを解析する方法です。

その Web ページ内の画像へのすべてのリンクの配列を作成したいと考えています。

Javaでこれを行う方法は知っていますが、シェルで文字列を解析して文字列操作を行う方法がわかりません。多くのトリックがあることは知っていますが、これは簡単にできると思います。

最終的に私はこのようなものを手に入れたい

    #!/bin/bash

read BIG_STRING <<< $(curl some_web_page_with_links_to_images.com)

#parse the big string and fill the LINKS variable

    # fill this with the links to image somewhow (.jpg and .png only)
    #after the parsing the LINKS should look like this
    LINKS=("www.asd.com/asd1.jpg" "www.asd.com/asd.jpg" "www.asd.com/asd2123.jpg")


    #I need the parsing and to fill the LINKS variable with the links from the web page

    # get length of an array
    tLen=${#LINKS[@]}


    for (( i=0; i<${tLen}; i++ ));
    do
      echo ${LINKS[$i]}
    done

ありがとう、あなたは私に何日もの欲求不満を救ってくれました

4

2 に答える 2

1

適切なツールから始めてみませんか? HTML の解析は難しく、特にsed. Mojolicious プロジェクトのツールがあれば、次のmojoことができます。

mojo get http://example.com a attr href

そして、各行がjpg、などで終わっているかどうかを確認しpngます。

于 2012-07-13T15:57:43.740 に答える
0

概算以上のものを提供することは困難です。href=""すべての興味深いリンクが属性であり、1 行に多くても 1 つの属性があると仮定しましょうhref(また、リンクも 1 行のみです。実際、URL 内で改行が許可されているかどうかはわかりません。

ソースファイルの名前がtest.html.

以下は、これらの仮定の下ですべてのリンクを出力する必要があります。

sed -n 's/.*\<href="\([^"]*\)".*/\1/p' test.html

これがどのように機能するかを理解するには、正規表現とは何かを理解し、sed のチュートリアル (特に、substitute コマンドの機能) を読んでおく必要があります。

于 2012-07-13T15:07:53.100 に答える