Python Парсинг определенных пользователем значений - PullRequest
0 голосов
/ 01 июля 2011

Я пытался изменить: -

import urllib2 as urllib
... ...
file2 = urllib.urlopen(url2)
... ...
for line in file2:
    indexfrom2 = line.find('Mean Temperature')
    if indexfrom2 > -1:
        nxtLn = file2.next()
        nextLine = file2.next()
        indexfrom21 = nextLine.find('"nobr"')
        if indexfrom21 > -1:
            indexto21 = nextLine.find('</span>&nbsp;&deg;C</span>',indexfrom21)
        code2 = nextLine[indexfrom21+23:indexto21]
        print code2

и заставить его выглядеть примерно так: -

class (...)  
def ....  
Temperature = parse( file2, '<span>Mean Temperature</span></td>', '<b>' )  

, но я не уверен, как это сделать.Приведенный выше набор кодов, который я хочу проанализировать, повторяется для разных значений, и я хочу, чтобы он был коротким, используя функцию синтаксического анализа, чтобы он формировал набор или цикл, в котором мне не нужно повторять все коды снова и снова.[для каждого значения (например, средняя температура, максимальная температура, влажность, давление и т. д.) код повторяется в моем сценарии, это выглядит непрофессионально].

1 Ответ

1 голос
/ 02 июля 2011

Вы, вероятно, хотите использовать BeautifulSoup для этого.Это канонический способ разбора HTML (и он работает довольно хорошо даже в некоторых ужасных случаях).Если вы продолжаете использовать свой текущий подход, вы полагаетесь на такие вещи, как номера строк, и поэтому ваш код довольно хрупок перед лицом незначительных изменений структуры документа.

http://www.crummy.com/software/BeautifulSoup/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...