Я пытаюсь построить парсер и сохранить результаты в виде файла XML, но у меня есть проблемы ..Python регулярное выражение в списке
вы бы специалисты, пожалуйста, посмотрите на мой код?
Traceback: TypeError: expected string or buffer
import urllib2, re
from xml.dom.minidom import Document
from BeautifulSoup import BeautifulSoup as bs
osc = open('OSCTEST.html','r')
oscread = osc.read()
soup=bs(oscread)
doc = Document()
root = doc.createElement('root')
doc.appendChild(root)
countries = doc.createElement('countries')
root.appendChild(countries)
findtags1 = re.compile ('<h1 class="title metadata_title content_perceived_text(.*?)`</h1>', re.DOTALL | re.IGNORECASE).findall(soup)
findtags2 = re.compile ('<span class="content_text">(.*?)</span>', re.DOTALL | re.IGNORECASE).findall(soup)
for header in findtags1:
title_elem = doc.createElement('title')
countries.appendChild(title_elem)
header_elem = doc.createTextNode(header)
title_elem.appendChild(header_elem)
for item in findtags2:
art_elem = doc.createElement('artikel')
countries.appendChild(art_elem)
s = item.replace('<P>','')
t = s.replace('</P>','')
text_elem = doc.createTextNode(t)
art_elem.appendChild(text_elem)
print doc.toprettyxml()
Hi Peter; добро пожаловать в SO. Выделите код и нажмите ctrl-k, чтобы он был правильно отформатирован. Я попытался удалить некоторые пробелы, надеясь сохранить код. Если я ошибаюсь, откажитесь. – bernie
Также, пожалуйста, отправьте трассировку, если сможете; который покажет линию, в которой происходит ошибка. Благодарю. – bernie
Я предполагаю, что ошибка здесь: 're.compile ('....'). Findall (soup)' –