Скребковый стол в википедии с Python - PullRequest
0 голосов
/ 25 марта 2020

Я хочу почистить таблицу почтовыми индексами Торонто в этой википедии page .

Независимо от того, что я использую метод pandas или BeautifulSoup, он просто не будет работать, хотя другие сообщили что это должно работать. Просим вас дать ваши подсказки:

Pandas:

df = pd.read_html('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M')[0]

beautifulSoup:

Согласно другим парням таблица вывода с использованием кодов в изображении должна быть как таблица в изображении 'expexted output with beautifulSoup'

выход BeautifulSoup

Ожидаемый результат с BeautifulSoup

1 Ответ

0 голосов
/ 25 марта 2020

Вы слишком много просите! Pandas хорош при разборе таблиц angular HTML, и здесь он делает это отлично:

  • он дает 9 столбцов от M1x до M9x
  • он дает 20 строк от MyA до MyZ (не используя все буквы)

Здесь вы хотели бы, чтобы он анализировал внутри ячеек. Извините, но вам придется кодировать его самостоятельно. Например, вы можете легко проанализировать первый ряд с помощью:

df = pd.read_html('https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_M')[0]
dfA = df.iloc[0].str.extractall(r'(M\d\w)([^\(\(]*)(?:\((.*)\))?')

, который он дает для dfA:

           0                                             1                                  2
  match                                                                                      
0 0      M1A                                  Not assigned                                NaN
1 0      M2A                                  Not assigned                                NaN
2 0      M3A                                    North York                          Parkwoods
3 0      M4A                                    North York                   Victoria Village
4 0      M5A                              Downtown Toronto         Regent Park / Harbourfront
5 0      M6A                                    North York  Lawrence Manor / Lawrence Heights
6 0      M7A  Queen's Park / Ontario Provincial Government                                NaN
7 0      M8A                                  Not assigned                                NaN
8 0      M9A                                     Etobicoke                   Islington Avenue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...