2017-01-26 5 views
0

Я пытаюсь прочитать некоторые данные из нашего внутреннего веб-страницы, используя следующий код:форматирование HTTP GET выходной запрос в питона

import requests 
from requests_toolbelt.utils import dump 

resp = requests.get('XXXXXXXXXXXXXXXX') 
data = dump.dump_all(resp) 
print(data.decode('utf-8')) 

И выход я получаю в следующем формате:

<tr> 
    <td bgcolor="#FFFFFF"><font size=2><a  
href=javascript:openwin(179)>Kevin</a></font></td> 
    <td bgcolor="#FFFFFF"><font size=2>45.50/week</font></td> 
    </tr> 

    <tr> 
    <td bgcolor="#FFFFFF"><font size=2><a 
href=javascript:openwin(33)>Eliza</a></font></td> 
    <td bgcolor="#FFFFFF"><font size=2>220=00/week</font></td> 
    </tr> 

    <tr> 
    <td bgcolor="#FFFFFF"><font size=2><a href=javascript:openwin(97)>sam</a></font></td> 
    <td bgcolor="#FFFFFF"><font size=2>181=00</font></td> 
    </tr> 

Однако данные я заинтересован в выводе выше это имя и значение, например:

Kevin 45.50/week 
Eliza 220=00/week 
Sam 181=00 

Т здесь любой модуль/путь я могу форматировать этот вывод в нужном формате и поместить его в какой-то файл (желательно Excel)

ответ

1

Попробуйте BeautifulSoup:

from bs4 import BeautifulSoup as soup 

content = """<tr> 
    <td bgcolor="#FFFFFF"><font size=2><a  
href=javascript:openwin(179)>Kevin</a></font></td> 
    <td bgcolor="#FFFFFF"><font size=2>45.50/week</font></td> 
    </tr> 

    <tr> 
    <td bgcolor="#FFFFFF"><font size=2><a 
href=javascript:openwin(33)>Eliza</a></font></td> 
    <td bgcolor="#FFFFFF"><font size=2>220=00/week</font></td> 
    </tr> 

    <tr> 
    <td bgcolor="#FFFFFF"><font size=2><a href=javascript:openwin(97)>sam</a></font></td> 
    <td bgcolor="#FFFFFF"><font size=2>181=00</font></td> 
    </tr>""" 

html = soup(content, 'lxml') 
trs = html.find_all('tr') 

for row in trs: 
    tds = row.find_all('td') 

    for data in tds: 
     print data.text.strip(), 

    print '\n' 

Выход:

Kevin 45.50/week 

Eliza 220=00/week 

sam 181=00 

Сначала найдите все <tr> теги с find_all('tr'), затем все <td> теги внутри с find_all('td'), наконец, выводит текстовое содержимое этого td с data.text