2017-01-30 2 views
0

У меня есть .html-файл, который динамически заполняется в зависимости от того, какие действия предпринимаются в программе, однако у меня возникает проблема при поиске точной строки, проблема в том, что хотя я знаете, что файл не пуст, цикл ничего не возвращает и считает его пустым.Python находит точную строку в .html файле

Я искал и читал много других так вопросы и пытались многие из них, в том числе 'blah' in line, re.findall и with open() все время, они возвращаются только пустым, я думаю, мне нужно HTML разбора или подобное? Может ли кто-нибудь пролить свет на это для меня?

f = open(outApp + '_report.html', 'r+') 
for line in f: 
    #check the for loop works 
    self.progressBox.AppendText(line) 
    if 'mystring' in line: 
     #do stuff 

Строка Я хочу найти это My country, который обернут в h2 тегах

+1

'r +', почему вы пишете 'r +'? –

+0

потому что я хочу писать в файл, если «mystring» не найден –

+0

, тогда afaik должен быть 'r + w' или что-то в этом роде. –

ответ

0

Это, безусловно, не должно быть сделано без специального HTML-парсер.

Google о любом парсере HTML на основе python, который вы хотите. Для базового использования все это легко. Например, lxml. В псевдокоде ваша задача будет:

from some_cool_lib import SomeCoolHTMLParser 
parser = SomeCoolHTMLParser() 
doc = parser.parse(path_to_my_html_file) 
h2_elements = doc.findall('h2') 
for h2 in h2_elements: 
    if h2.text == 'My country': 
     # do stuff 
Смежные вопросы