I use the following code to try and scrape the tickers of the firms on eToro. My only issue is that this code only generates only the first 50 as this is how many is displayed when looking at the url. You can show more on the site but this is not reflected in the request so I'm just wondering if it would be possible to get all of them.
import requests
import json
from bs4 import BeautifulSoup
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
options = Options()
driver = webdriver.Chrome("chromedriver.exe", options = options)
driver.get("https://www.etoro.com/discover/markets/stocks/exchange/london")
soup = BeautifulSoup(driver.page_source, 'html.parser')
soup = BeautifulSoup(driver.page_source, 'html.parser')
section = soup.find_all("a", attrs = {"class" : "card-avatar-wrap"})
firms = []
for i in range(len(section)):
firms.append(section[i]["href"].split("/")[2])