попытка извлечь html-таблицу с веб-сайта с помощью pandas

#python #pandas #web-scraping

#питон #панды #соскабливание полотна #pandas

Вопрос:

Я пытаюсь получить таблицу с веб-сайта, используя python. Вот подсказка, которую я запустил в терминале:

 

url = 'https://www.zonebourse.com/bourse/derives/investissement-palmares/?type=volumes'

page = requests.get(url)
df_list = pd.read_html(page.text)
df = df_list[0]
df.head()
  

Когда я запускаю это в своем терминале, ничего не происходит. Любая помощь была бы очень кстати.

Комментарии:

1. Какой стол вы пытаетесь выбросить?

Ответ №1:

Я полагаю, вы хотите получить основную таблицу, найденную на странице, которая не df = df_list[0] :

 import requests
import pandas as pd
from bs4 import BeautifulSoup


url = 'https://www.zonebourse.com/bourse/derives/investissement-palmares/?type=volumes'

page = requests.get(url)
soup = BeautifulSoup(requests.get(url).content, 'html.parser')

df_list = pd.read_html(str(soup.select('#deriv_result_0')))
df = df_list[0]
df.columns = df.loc[0, :]
df = df.loc[1:, :]
print(df)
  

С принтами:

 0   Mnemo     Var. Volume €  Type Type de produit          Sous-jacent          Emetteur Prix d'exercice
1   51O8B   -4.73%   504250  CALL          Turbos               CAC 40       BNP Paribas            4640
2   44IUC    5.81%   257752   PUT          Turbos               CAC 40              Citi            5524
3   8Z20S   45.70%   191678   PUT          Turbos               CAC 40  Société Générale            5125
4   B6G9Z  -22.30%   177796  CALL          Turbos  WFD Unibail Rodamco  Société Générale           26.04
5   2K03Z  -10.14%   143812  CALL  Warrant simple               CAC 40  Société Générale            5100
6   59FPC   11.70%   122434   PUT          Turbos               CAC 40              Citi            5247
7   316AZ  -21.09%   118643  CALL          Turbos  WFD Unibail Rodamco  Société Générale           25.21
8   21O7B    7.82%   109214   PUT          Autres               CAC 40       BNP Paribas             NaN
9   892JB   17.58%    97810   PUT          Turbos               CAC 40       BNP Paribas            5321
10  4T51S   28.63%    95571   PUT          Turbos               CAC 40  Société Générale            5170
11  9802B    3.56%    90600   PUT          Turbos               CAC 40       BNP Paribas            6217
12  19D2B   -7.22%    82250  CALL          Autres               CAC 40       BNP Paribas             NaN
13  65NVC  -15.79%    78790  CALL          Turbos               CAC 40              Citi            4900
14  2V79S  -26.83%    73490  CALL  Warrant simple  WFD Unibail Rodamco  Société Générale              50
15  20O7B   -7.21%    73460  CALL          Autres               CAC 40       BNP Paribas             NaN
16  17A3S  -25.47%    70804  CALL          Turbos               CAC 40  Société Générale            4990
17  66A6B  -10.86%    70650  CALL  Warrant simple               CAC 40       BNP Paribas            5000
18  1244Z   11.38%    64880   PUT          Turbos               CAC 40  Société Générale            5389
19  81I0B   -5.57%    63613  CALL          Autres               CAC 40       BNP Paribas             NaN
20  034LB    0.00%    62090   PUT          Turbos               SAFRAN       BNP Paribas           111.4
21  55B4B   -6.25%    58450  CALL  Warrant simple          BNP Paribas       BNP Paribas              35
22  4N79S   14.39%    56055   PUT          Turbos               CAC 40  Société Générale            5200
23  8W48S   12.41%    54398  CALL          Turbos                Ipsen  Société Générale           80.46
24  SR15S    6.71%    54337   PUT          Autres               CAC 40  Société Générale             NaN
25  64M0B    4.42%    51712   PUT          Autres               CAC 40       BNP Paribas             NaN
26  12MJC   13.44%    51500   PUT          Turbos               CAC 40              Citi            5500
27  1U42S   -9.53%    50135  CALL          Turbos               CAC 40  Société Générale            4829
28  11DYC  -31.11%    50124  CALL          Turbos  WFD Unibail Rodamco              Citi           30.67
29  YS93V  -14.37%    49700  CALL          Turbos               CAC 40          Vontobel            4890
30  072PB    4.30%    49255   PUT          Autres               CAC 40       BNP Paribas             NaN
31  581OB   16.50%    48642   PUT  Warrant simple               CAC 40       BNP Paribas            5000
32  07C0S   29.41%    48470   PUT          Turbos               CAC 40  Société Générale            5097
33  63A6B  -12.10%    47800  CALL  Warrant simple               CAC 40       BNP Paribas            5000
34  17A0S  -20.91%    47675  CALL          Turbos               CAC 40  Société Générale            4960
35  93YAC   -9.09%    47370  CALL  Warrant simple                Total              Citi              32
36  EL69S   94.29%    46592   PUT          Turbos  WFD Unibail Rodamco  Société Générale           42.98
37  17R0Z   17.92%    46539   PUT          Turbos               CAC 40  Société Générale            5157
38  039OB   -2.18%    46020  CALL          Turbos               CAC 40       BNP Paribas            3871
39  126KZ    6.49%    45269   PUT          Turbos               CAC 40  Société Générale            5449
40  UL51V    4.36%    45190   PUT          Turbos               CAC 40          Vontobel            5316
  

Комментарии:

1. Просто из любопытства, как вы узнали, что вам нужно выбрать ‘#deriv_result_0’, прежде чем получить нужную таблицу

2. @RasorVolt Я открыл инструменты разработчика Firefox и посмотрел, как я могу идентифицировать таблицу. Существует много способов его идентификации, но этот идентификатор кажется уникальным и содержит желаемый <table>