No, Ethereum contracts cannot pull data from external information sources in this way. It is however possible to push data from external sites (e.g. weather sites, stock prices) to Ethereum contracts through transactions. There are “oracle” services that are compatible with the Ethereum network that will pull/push data to the Ethereum network for a fee.
Yes of course!
Oracles enable smart contracts to retrieve data from the outside world.
Each oracle node can be configured to perform a wide range of tasks depending on the adapters it supports. Some of these adapters include HTTP GET, HTTP POST, JSON Parse, Multiply, and more.
Let’s assume that we want to create a smart contract that acts upon the USD price of Ethereum, as reported from the popular price analysis site CoinGecko. We know that there is no native way our smart contract can call an external HTTP API, but an oracle node can.
Using the request-and-response cycle, our smart contract can request data from an oracle node, configured to perform HTTP GET requests, and implement a callback function for the oracle to fulfil with a response.