2012-04-27 4 views
0

HTMLのIMGSを解析するために、私は、IMGのSRCSとのhrefを抽出したいです。特定のサイトで正規表現は、私はHTMLページを介してクロールしてい

、それらのすべてを二重引用符でカプセル化されています。

私はさまざまな正規表現を試しましたが、成功しませんでした。

re.search(r'img\s+src="(?P<src>[\w-/]+_"', line) 

doesnの」:([-ZA-Zの\ D-_]印字可能な文字及び/および。) - [W/\]

Pythonで二重引用符内の文字であると仮定トン何かを返しますが、

re.search(r'img\s+src="(?P[-\w[/]]+)"', line) 

返します(つまり、 "で停止しません)くらいにwayy。

私は右の正規表現の作成を支援する必要があります。事前に感謝!

+1

必須:http://stackoverflow.com/a/1732454/350351 – Daenyth

+0

真、正規表現でHTMLを解析することはできませんが、その中に特定のものを見つけることができ、かつ迅速なスクリプトなどのために、それは適切なツールかもしれません。 – OlliM

+0

@Daenyth、はい、私はそれを知っています。私は定期的かつ文脈自由な文法のために、多くの人々にポンピング補題を教えてきました。私が見つけようとしている正規表現は、タグの内部のフィールドであり、これは最も確かに規則的です。 –

答えて

2

あなたが"([^"]+)"を行う引用符の内側に物事を見つけるための良いトリック。したがって、引用符の間にある引用符以外の文字を検索します。私は強くエスプレッソ(http://www.ultrapico.com/Expresso.htm

6

正しい正規表現を作成する手助けが必要です。

いいえ、あなたは適切なツールを見つけることで助けを必要としています。

BeautifulSoupを試してみてください。

は(あなたは、正規表現を使用してを主張する場合 - と私はそれに対して助言するだろう - 非貪欲+?に貪欲+変更してみてください)。

+2

または[lxml](http://lxml.de/)で 'xpath'をサポートしています。 – RanRag

5

をお勧めすることができます正規表現を作成するのヘルプについて

はここで優れたlxmlライブラリを使用して、正規表現よりも、それを行うには良い方法の一例だとxpath


In [1]: import lxml.html 
In [2]: doc = lxml.html.parse('http://www.google.com/search?q=kittens&tbm=isch') 
In [3]: doc.xpath('//img/@src') 
Out[3]: 
['/images/nav_logo_hp2.png', 
'http://t1.gstatic.com/images?q=tbn:ANd9GcQhajNZimPGLw9iTfzrAF_HV5UogY-KGep5WYgw-VHZ15oaAwGquNb5Q2I', 
'http://t2.gstatic.com/images?q=tbn:ANd9GcS1LgVIlDgoIfNzwU4xBz9fL32ZJjZU26aB4aynRsEcz2VuXmjCtvxUonM', 
'http://t1.gstatic.com/images?q=tbn:ANd9GcRgouJt5Moe8uTnDPUFTo4csZOcBtEDA_B7WdRPe8pdZroR5QB2q_-LT59G', 
[...] 
] 
関連する問題