code: def _parse_tables(self, soup):
          
          tables = []
          for t in soup.find_all('table'):
              t_dict = {'width': 0, 'table': t, 'trs': [], 'col_width': {}}
              trs = t.find_all('tr')
              if len(trs) > 0:
                  for tr in trs:
                      tr_dict = []
                      tds = tr.find_all('th') + tr.find_all('td')
                      if len(tds) > 0:
                          for i, td in enumerate(tds):
                              td_text = self._find_any_text(td)
                              length = len(td_text)
                              if i in t_dict['col_width']:
                                  t_dict['col_width'][i] = max(
                                      length,
                                      t_dict['col_width'][i]
                                  )
                              else:
                                  t_dict['col_width'][i] = length
                              tr_dict.append({
                                  'text': td_text,
                                  'colspan': int(td.get('colspan', 1)),
                              })
                          t_dict['trs'].append(tr_dict)
                  for col in t_dict['col_width']:
                      t_dict['width'] += t_dict['col_width'][col]
                  tables.append(t_dict)
          return tables
docs: Returns array containing basic informations about tables for ASCII
          replacement (look: _replace_tables()).