2016-11-23 4 views
0

Получение ошибки тегов при прохождении выходного сигнала ы к >> таблицы = ET.XML (ы)TypeError: требуется байт-подобный объект, а не 'Tag'

response = response = requests.get('https://sandbox.jiveon.com/api/core/v3/contents/436669', auth=('dedileep', 'Xento123$')) 
data = response.json() 
html_doc = data['content']['text'] 
soup = BeautifulSoup(html_doc, 'html5lib') 
s = soup.find('table', attrs={'class':'mytable'}) 
def find_version(ver): 
    table = ET.XML(s) 

Выдает ошибку здесь ---- -

# headers Traceback (most recent call last): 
    File "final_release.py", line 63, in <module> 
    res = find_version(ver) 
    File "final_release.py", line 25, in find_version 
    table = ET.XML(s) 
    File "C:\Users\dedileep\AppData\Local\Programs\Python\Python35-32\lib\xml\etree\ElementTree.py", line 1333, in XML 
parser.feed(text) 
TypeError: a bytes-like object is required, not 'Tag' 


ths = [th.text for th in table.findall('.//th')] 
    for tr in table.findall('.//tbody/tr'): 
     data = [] 
     data.append(tr[0].text) 
     data.append([x.text for x in tr[1]]) 
     temp = [] 
     for x in tr[2]: 
      if x.tag == 'a': 
       temp.append(x.text) 
      else: 
       temp.append(x[0].text) 
     data.append(temp) 
     out = OrderedDict(zip(ths, data)) 
     print('out:', out) 
     if out['Release'] == ver: 
      return out 

программыполь основных
Рез = find_version (веры) если Рез: для ключа, вал в res.items(): печати (ключ, '-', вал) еще: п ечать («Версия не найдена»)

ответ

0
s = soup.find('table', attrs={'class':'mytable'}) #return a Tag object 

ET.XML(s) #require a bytes-like object, like string 

решение

s = soup.find('table', attrs={'class':'mytable'}).get_text() 

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

+0

Мне нужно пройти через древовидную структуру вместо того, чтобы извлекать текст. Редактирование исходного вопроса для этого. – Kworks

+0

, так как вы используете bs4, почему вы помещаете html обратно в lxml, это не имеет смысла, просто выбор один, и проблема будет простой –