#python #pandas #web-scraping
#python #панды #веб-очистка
Вопрос:
Я пытаюсь очистить таблицу с сайта B3, но в результате получается пустой фрейм данных.
Что не так?
import pandas as pd
url = "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-taxas-referenciais-bmf-ptBR.asp?Data=31/08/2020amp;Data1=20200831amp;slcTaxa=PRE"
df = pd.read_html(io=url)
print (df)
Комментарии:
1. Возможно, сайт блокирует user-agent, который поступает от бота
Ответ №1:
По умолчанию используется синтаксический read_html
анализатор lxml, который не может проанализировать ваш документ. Переключение на html5lib (Beautifulsoup 4) делает свое дело.
Ниже приведен ваш код с добавлением параметра flavor.
import pandas as pd
url = "http://www2.bmf.com.br/pages/portal/bmfbovespa/lumis/lum-taxas-referenciais-bmf-ptBR.asp?Data=31/08/2020amp;Data1=20200831amp;slcTaxa=PRE"
df = pd.read_html(io=url, flavor='bs4')
print (df)
[ Dias Corridos DI x pré
Dias Corridos 252(2)(4) 360(1)
0 1 190 0
1 8 191 171
2 11 191 199
283 10760 848 832
284 10801 848 832
285 10941 848 833
286 12677 854 838
[287 rows x 3 columns]]