Как я могу получить определенное значение на веб-странице? - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть некоторые <div> s и другие вещи на сайте и определенная строка в середине многочисленных div

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

Как я могу получить часть "значения" из этого кода, которая находится в середине сайта с другими вещами?

Я пытаюсь использовать urllib, но даже не знаю с чего начать = /

Ответы [ 3 ]

3 голосов
/ 06 декабря 2011
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")
2 голосов
/ 06 декабря 2011

Самый простой способ, которым я могу придумать:

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 голос
/ 06 декабря 2011

Не нужно ничего особенного, если это все, что вам нужно. Загрузите страницу с помощью 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)
...