• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一括でHTMLを置換・移動させるソフトってありますか?)

一括でHTMLの商品名をタイトルに移動する便利な方法はありますか?

このQ&Aのポイント
  • ネットショップで多数の商品を扱っている場合、商品名をHTMLのタイトルに自動的に移動させる方法はありますか?手作業では時間がかかるため、便利なソフトや方法が知りたいです。
  • タイトルの行数や商品名の記述行数は全ページ共通です。手作業で単純な作業ですが、5000個の商品を処理するには手間がかかります。一括で特定の位置の語句を特定の位置に移動できるソフトや方法があれば教えてください。
  • HTMLソースの特定の行に記述がある商品名を、HTMLのタイトルに移動する便利な方法を探しています。ネットショップを運営しており、5000個の商品を扱っているため、一つ一つのページを手作業で編集するのは困難です。おすすめのソフトや方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

気に入らなかったので作り直しました。 #3、#4の回答はなかったことにしてください。 ○ 動作環境&前提条件 ・Windows2000 or WindowsXP ・HTML の文字コードは SJIS であること ・HTML中【商品名】の存在する行は10行目であるとする。  実際には10行目でなかった場合は exesed1.bat を修正してください。 ・コマンドラインから実行します。 ○ 事前準備 1) 以下から sed プログラムをダウンロードし sed.exe を system32 フォルダにコピーする http://www.vector.co.jp/soft/win95/util/se015016.html 2) 念のため元 html は全部バックアップしておく 3) 次のバッチファイルを作成しておき、コピーしたhtmlファイルがある作業フォルダに保存する。 ・exesed1.bat echo %1.html>> %2 sed -e "10 {" -e "s/[^&]*&nbsp;\([^<]*\)\(<.*\)/\1/" -e "p" -e "}" -e "d" %1.html >> %2 ★商品名が例えば 20行目に存在するのなら 10 と書いてあるところを 20 に変更してください。 4) 次のスクリプトファイルを作成し上記と同じ作業フォルダに保存する。 ・make_replace.sed N s/\n/ / s/\([^ ]*\) \(.*\)/sed "s\/<TITLE>.*<\\\/TITLE>\/<TITLE>\2<\\\/TITLE>\/" \1 > newpage\\\1/ p d ○ 作業開始 1) コマンドプロンプトから 作業用html のあるディレクトリに移動する 2) 置換作成するページを保存するディレクトリ newpage をその作業ディレクトリ配下に作成する 3) 対象ファイル一覧を作成 dir *.html > work1.txt 4) 対象ファイル名だけの一覧を以下のコマンドで整形 sed "s/.\{39\}//" work1.txt > work2.txt 5) 対象ファイル一覧を整形 上下に存在するファイル名と関係ない行を削除 6) ページ名、商品名を抜き出すバッチファイルを作成 echo del page_shohinmei.txt > make_page_shohin.bat sed "s/\(.*\)\.html/cmd \/c exesed1 \1 page_shohinmei\.txt/" work2.txt >> make_page_shohin.bat 7) ページ名、商品名抽出バッチファイルを実行 make_page_shohin.bat ページ名A 商品名A ページ名B 商品名B という形式のファイル(page_shohinmei.txt)が作成されているはず。 8) 置換を実行するバッチファイルを作成する sed -f make_replace.sed page_shohinmei.txt > replace.bat それらしい感じのバッチファイルが生成されていることを確認する。 9) 置換実行バッチファイルを実行する replace.bat 10) newpage というフォルダに同名の置換されたファイルができているはず。

pirokore
質問者

補足

大変ご丁寧な回答ありがとうございます。2時間もお時間を掛けて頂き、感謝感激です。ご指導いただいたとおり、まずやってみます。できましたら、こちらでまたご連絡します。取り急ぎ、お礼までに。

すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.4

書き込んだら妙な形に変換されちゃっています。(^^; exesed1.bat はこちらに変更してください。 ・exesed1.bat sed "1,9d" %1.html | sed "2,10000d" | sed "s/[^&]*&nbsp;\([^<]*\)\(<.*\)/\1/" >> %2 ★商品名が例えば 20行目に存在するのなら 1,9 ではなく 1,19 に変更してください。

すると、全ての回答が全文表示されます。
回答No.3

面白そうなので参戦します。 sed(ストリームエディタ)使えばできそうです。 というか簡単そうだと思ったので試しにやってみたら2時間ぐらいかかってしまった…(^^;<TITLE>●●</TITLE>の部分を全部同一に変えるのなら本当に簡単にできてしまいますが、今回はページごとに違うわけなので、その辺が難しいですね。 以下の手順をよどみなくやれば作業自体は5分もあればできるでしょう。 5000ファイルぐらいなら楽勝だと思います。 ○ 動作環境&前提条件 ・Windows2000 or WindowsXP ・HTML の文字コードは SJIS であること ・HTML は 10000 行以下とする。 ・ファイル拡張子は html を想定しています。 ・HTML中【商品名】の存在する行は10行目であるとする。  10行目でなかった場合は exesed1.bat を修正してください。 ・コマンドラインから実行します。 ○ 事前準備 1) 以下から sed プログラムをダウンロードし sed.exe を system32 フォルダにコピーする http://www.vector.co.jp/soft/win95/util/se015016.html 2) Microsoft Excel を使えるようにしておくこと 3) 念のため元 html は全部バックアップしておく 作業用のフォルダに全部の html をコピーする。 ディレクトリ階層は考慮してません。 4) 次のバッチファイルを作成しておき html ファイルがあるディレクトリに保存する。 ・exesed1.bat sed "1,9d" %1.html | sed "2,10000d" | sed "s/[^&]* \([^<]*\)\(<.*\)/\1/" >> %2 ★商品名が例えば 20行目に存在するのなら 1,9 ではなく 1,19 に変更してください。 ・exesed2.bat sed "s/<TITLE>.*<\/TITLE>/<TITLE>%2<\/TITLE>/" %1 > newpage\%1 ○ 作業開始 1) コマンドプロンプトから 作業用 html のあるディレクトリに移動する 2) 置換作成するページを保存するディレクトリ newpage を作成する 3) 対象ファイル一覧を作成 dir *.html > work1.txt 4) 対象ファイル一覧を整形 ファイル名と関係ない行を削除 5) 対象ファイル名だけの一覧を以下のコマンドで整形 sed "s/.\{39\}//" work1.txt > work2.txt work2.txt に正しくファイル名のみが保存されているか確認する。 6) 商品名だけを抜き出すバッチファイルを作成 echo del shohinmei.txt > makeshohin.bat sed "s/\(.*\)\.html/cmd \/c exesed1 \1 shohinmei\.txt/" work2.txt >> makeshohin.bat 7) 商品名抽出バッチファイルを実行 makeshohin.bat これを実行すれば、商品名のみ抜き出したファイル shohinmei.txt というのが作成されているはず 8) html ファイルと 商品名の対応情報を作成する ・エクセルで新規シート作成 work2.txt をエディタで開きA列に貼り付け ・同様に shohinmei.txt を開きB列に貼り付け ・データの存在する行を選択コピーしエディタに貼り付け page_shohin.csv という名称のCSV形式で保存する。 7) 置換を実行するバッチファイルを作成する echo rem start > replace.bat sed "s/\([^,]*\),\(.*\)/cmd \/c exesed2 \1 \2/" page_shohin.csv >> replace.bat 8) 置換実行バッチファイルを実行する replace.bat 9) newpage というフォルダに同名の置換されたファイルができているはず。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

とりあえず、サンプルで1ページを補足したりはできますか

pirokore
質問者

補足

<HTML> <HEAD> <TITLE>■■■■■■■</TITLE> ↓ ↓中略 ↓ <TD><B><FONT size="-1">商品名:</FONT></B></TD> <TD><FONT size="-1" color="#666666">&nbsp;●●●●●●</FONT></TD> ※●●の部分を■■のところに書き写したいと考えています。

すると、全ての回答が全文表示されます。
回答No.1

それ専門のソフトというのはないと思う(需要がないので)ので自分で作るのが早いかなと思います。 「なでしこ」というソフトがあるのですがこれを使えばカンタンにプログラミングしてソフトを作ることができます。 このソフトのいいところは日本語でプログラミングできることです。 サンプルをくれれば私が作ってもいいですがメールアドレスとか書けないみたいなので^^;

pirokore
質問者

お礼

回答ありがとうございました。やはり難しいそうですね。「なでしこ」というソフトの存在を初めて知りました。さっそくマニュアル的な書籍も購入し、挑戦してみようと思います。ぜひサンプルをお送りしたいのですが連絡の手段がないようです。残念です(T_T)

すると、全ての回答が全文表示されます。

関連するQ&A