Webscrap一个表与python和beautifulsoup

时间:2017-08-02 12:36:23

标签: python web-scraping beautifulsoup

我需要从这个网站" http://www.oab.org.br/institucionalconselhofederal/quadroadvogados"做一个表格webscrap。里面有三个div:Quantitativo Total,Quantitativo Genero,Quantitativo por Faixa etaria。

我做的代码:

from bs4 import BeautifulSoup
import requests
page = requests.get("http://www.oab.org.br/institucionalconselhofederal/quadroadvogados")
soup = BeautifulSoup(page.content, 'html.parser')
dados = []
for body in soup.findAll('tbody'):
    dados.append(body.text)
print dados[0]
print dados[1]
print dados[2]

我的结果 dados [0]:AC

                                    3.121


                                    22


                                    296


                                    3.439




                                    AL


                                    10.071


                                    84


                                    472


                                    10.627

dados [1] AL

                                    4.527


                                    5.544


                                    31


                                    53


                                    136


                                    336


                                    10.627




                                    AP


                                    1.254


                                    1.406


                                    120


                                    94

                                        105


                                        288


                                        3.267

dados[2] AC


                                    Até 25 Anos


                                    116


                                    88


                                    204




        De 26 à 40 Anos


        615


        614


        1.229




                                    De 41 à 59 Anos


                                    401


                                    573


                                    974




                                    De 60 Anos ou Mais


                                    189


                                    525


                                    714




                                    AL


                                    Até 25 Anos


                                    453


                                    361


                                    814




                                    De 26 à 40 Anos


                                    2.716


                                    2.616


                                    5.332




                                    De 41 à 59 Anos


                                    954


                                    1.416


                                    2.370




                                    De 60 Anos ou Mais


                                    404


                                    1.151


                                    1.555

我的问题是如何在原始页面中打印和导出这些数据,格式化和美观? 请求帮助,我是网络管理员尝试在python中开始学习编程

2 个答案:

答案 0 :(得分:0)

您只能抓取数据,而不是格式化。将表保存到excel时,您可以手动表。 你可以从:

开始
import pandas as pd

df = pd.read_html('http://www.oab.org.br/institucionalconselhofederal/quadroadvogados')
d0=df[0]

但这只适用于第一张桌子。

答案 1 :(得分:0)

from bs4 import BeautifulSoup

import requests

page = requests.get("http://www.oab.org.br/institucionalconselhofederal/quadroadvogados")
soup = BeautifulSoup(page.content, 'html.parser')
dados = {}
for k, body in enumerate(soup.findAll('tbody')):
    dados['table' + str(k)] = []
    for tr in body.find_all('tr'):
        tmp = tuple()
        th = tr.find('th')
        if th:
            th = tr.find('th').text.strip()
            tmp += (th,)
        for td in tr.find_all('td'):
            tmp += (td.text.strip(),)
        dados['table' + str(k)].append(tmp)
print dados