質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

324閲覧

CSSファイル内で特定の画像を指定している要素を取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

0クリップ

投稿2018/04/13 03:37

編集2018/04/19 06:00

前提・実現したいこと

hoge.pngを指定している要素(.hoge .fooと.fuga .baz)を取得したいです。

CSS

1.hoge .foo { 2 color: #white; 3 background: url("hoge.png"); 4} 5.bar { 6 font-size: 16px; 7 background: url(fuga.png); 8} 9.fuga .baz { 10 margin: 0 auto; 11 background: url("hoge.png"); 12 text-align: center; 13}

python

1 2import re 3import codecs 4 5css_file = codecs.open(r'C:\Users\username\Desktop\test.css', 'r', 'shift_jis') 6css_list = css_file.readlines() 7 8re_pattern_img = re.compile("hoge.png") 9re_pattern_start = re.compile("{") 10re_pattern_end = re.compile("}") 11tmp_element = "" 12result = [] 13 14def is_somthing(line): 15 flag = False 16 list_except = ['}', ':'] 17 18 for except_char in list_except: 19 if except_char not in line: 20 flag = True 21 else: 22 flag = False 23 return flag 24 25 return flag 26 27for css_line in css_list: 28 found_img = re_pattern_img.search(css_line) 29 found_start = re_pattern_start.search(css_line) 30 found_end = re_pattern_start.search(css_line) 31 32 if is_somthing(css_line): 33 tmp_element = tmp_element + css_line.replace("\n", "").replace("\r", "") 34 35 if found_start: 36 target_element = tmp_element.replace("{", "").strip() 37 tmp_element = "" 38 39 if found_img: 40 result.append(target_element) 41 42css_file.close() 43

試したこと

上記の通りです。
もう少しましな、やり方があるかと思います。
ご教授いただけましたら、ありがたいです。

補足情報(FW/ツールのバージョンなど)

AnacondaのSpyderで作業しています。

HayatoKamono👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

NOTE:
Pythonタグの付いた質問に対する回答としては不適でした


CSSOMを使ってドキュメントに紐付けられたCSSルールをぶん回して対応するセレクタを抽出すれば可能です.

https://developer.mozilla.org/ja/docs/Web/API/CSS_Object_Model

投稿2018/04/13 04:43

編集2018/04/13 06:26
defghi1977

総合スコア4756

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/13 06:18

ご回答ありがとうございます。
退会済みユーザー

退会済みユーザー

2018/04/13 06:35

ご丁寧にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問