2011-12-05 20 views
0

私はいくつかの<div> sおよびサイト内の他のものと私はそれがの真ん中にある、このコードから、「値」の部分を取得できますかinumerousのdivウェブページで特定の値を取得するにはどうすればよいですか?

<input name="extWarrantyProds" type="hidden" value="23814298^true"/> 

の途中で特定の行を持っています他のものとサイト?

私はurllibはとしようとしているが、私も=/

+0

[html5lib](http://code.google.com/p/html5lib/) – ephemient

+0

あなたは任意のコントロールの上に持っていますかページの内容は?合理的にそれがあまりにも大幅に変化しないことを保証できますか?はいの場合は、単純なパターンマッチング(下の解答を参照)が必要です。そうでなければ、 "本物の" html解析を行う必要があります。 – jwd

答えて

1

私は考えることができる最も簡単な方法:

import urllib 

urlStr = "http://www..." 

fileObj = urllib.urlopen(urlStr) 

for line in fileObj: 
    if ('<input name="extWarrantyProds"' in line): 
     startIndex = line.find('value="') + 7 
     endIndex = line.find('"',startIndex) 
     print line[startIndex:endIndex] 
1

それはあなたが必要とするすべてだ場合は、あまりにも派手なものは必要ないを開始する場所を知っていません。 urllibを使用してページをダウンロードし、re.findall()を使用して値を探します。

import re 
import urllib 

url = 'http://...' 
html = urllib.urlopen(url).read() 
matches = re.findall('<input name="extWarrantyProds.*?>', x, re.DOTALL) 
for i in matches: 
    print re.findall('value="(.*?)"', i) 
3
import lxml.html as lh 

html = ''' 
<input name="extWarrantyProds" type="hidden" value="23814298^true"/> 
''' 

# If you want to parse from a URL: 
# tree = lh.parse('http://example.com') 

tree = lh.fromstring(html) 

print tree.xpath("//input[@name='extWarrantyProds']/@value") 
+0

regex + html = nightmares +1適切なパーサーを使用しています。私はhttp://www.crummy.com/software/BeautifulSoup/を見てみることをお勧めしたいと思います。 –

関連する問題