Jak zeskrobać prędkość w Internecie?

Oct 03 2020

Zastanawiałem się, jak zeskrobać z sieci prędkość, jaką jest strona Fast.com z pythonem

Zrobiłem trochę wysiłku, oto co zrobiłem do tej pory:

import requests
from bs4 import BeautifulSoup

response = requests.get('https://fast.com/', headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12"})
soup = BeautifulSoup(response.text, 'lxml')
speed = soup.find('span', {'id' : 'speed-value'}).text

print(speed)

Wynik jest zawsze „0” i czasami wyświetla mi się błąd

Moim celem jest uzyskanie prędkości w MB / s, jak pokazano na stronie internetowej po skanowaniu.

O czym zapomniałem zrobić?

Odpowiedzi

2 SeanMorgan Oct 03 2020 at 20:49

Z mojego osobistego doświadczenia wynika, że ​​BeautifulSoups jest bardziej dla stron statycznych. Poleciłbym Selenium do bardziej dynamicznego użytkowania. Umożliwiłoby to dostęp po załadowaniu javascript itp. W celu łatwiejszego przeszukiwania sieci.

from selenium import webdriver
driver_path = r"C:\chromedriver.exe"
driver = webdriver.Chrome(driver_path)

MBPS_CLASS = "speed-results-container"

driver.get("https://fast.com/")
while True:
    print(driver.find_elements_by_class_name(MBPS_CLASS)[0].text)
    # driver.find_element_by_id("speed-value").text # This works with ID also