2011-12-08 5 views
3

私はScrapyを使ってウェブページを掻き集めて、特定のオブジェクトから背景色を抽出する必要があります。 inline-cssはDOMの一部ではないので、読み込んだので、現在のXPathを拡張し、オブジェクトのスタイル属性内で必要な値を選択する正規表現を作成する必要があります。私の現在のXPathは、全体のスタイル値それほどのように返します。Python正規表現 - 周囲のパターンに基づいて値を選択

背景:#80FF00;高さ:48px;幅:98px;色:#FFFFFF

私は背景進値のみを選択します正規表現を必要とします(すなわち:#80FF00)。私は値が正しく書式化されていることを確認する必要はありません(すなわち、([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}))\b)、ちょうどが「背景:」と次の「;

正規表現を書くのが初めてで、助けに感謝します。

background:(.*?); 

background = re.search(r'background:(.*?);', some_string).group(1) 

.マッチ任意の文字、*手段のPython:

答えて

3

次の正規表現は、あなたが望むものをあなたが最初のキャプチャグループになりますつかむにしたいものを行う必要があります前の要素を何度でも繰り返し、?はそれを怠惰なマッチにするので、可能な限り少数の文字と一致します。これは、複数のセミコロンを取得せず、最後のセミコロンでのみ停止するようにするために必要です。 [^;]はセミコロン以外の文字と一致するだけなので、代替方法はbackground:([^;]*)です。

+0

ありがとうFJ ...素晴らしい作品です。 Scrapyを使ってこれを実装している人は、 '.group(1)'は必要ないことに注意してください。 – Clayton

関連する問題