Any one of a GSM shield, an Ethernet shield or an Arduino wifi shield should be able to pull a web page from a web server and feed it into your Arduino.
I highly recommend buying hardware from people that put lots of example program text on their website, rather than trying to save a few nickles buying "equivalent" hardware from people that don't give any examples, leading to hours of frustration.
Some of the places I've found that have lots of example program text (in no particular order):
Arduino Ethernet Shield 2: links to "Getting Started with the Arduino Ethernet Shield and Ethernet Shield 2" which in turn links to example code "WebClient: make a HTTP request" and "WebClientRepeating: Make repeated HTTP requests."
Arduino Ethernet Shield 2: links to Arduino Ethernet2 Library which in turn links to example code
W5500 Ethernet Shield for Arduino v1.0: links to WIZ5500 based Ethernet Shield library for Arduino which in turn links to example code "WebClient" and "WebClientRepeating"
Adafruit FONA 800 Shield - Voice/Data Cellular GSM for Arduino: links to Datasheets & App notes, and the "SIM800 IP App Note" has some brief examples of using HTTP to pull from a web server.
SparkFun ESP8266 Thing - Dev Board: links to ESP8266 Thing Development Board Hookup Guide, which has an example that "Read all the lines of the reply from server and print them to Serial". (related: "Quick Tip: HTTP GET with the ESP8266 Thing" )
If I were you, I would test the hardware with exactly the example programs given for that hardware, and resist the urge to "improve" them until after I confirm that the example programs actually do work. (Perhaps you already did that? If so, please update your question to say the example code seemed to run OK, and exactly which example code you tried, and what minor changes you made that still seemed to run OK, so we can focus on what changed between "partially working" vs. "not even that part working").
(I personally find it easier to parse JSON data sent by a web server set up to send out "Content-Type: application/json; charset=utf-8", or TOML data sent by a web server as "Content-Type: text/plain; charset=utf-8",
rather than programmatically parse HTML tables sent by a web server set up to send out "Content-Type: text/html; charset=utf-8", but any of these ways should work).