#python #beautifulsoup #webdriver
Вопрос:
Я пытаюсь получить данные с этого сайта https://www.dsl.cz/test-mereni-rychlosti. (Этот веб-сайт измеряет скорость Интернета).
Что мне нужно напечатать:
Test rychlosti připojení: 40
Test stahování připojení: 20
Poskytovatel internetu: Vodafone
Что я получаю:
Test rychlosti připojení: <span id="download-result">...</span>
Test stahování připojení: <span id="upload-result">...</span>
Poskytovatel internetu: None
Мой код:
import requests
import time
from bs4 import BeautifulSoup
URL = 'https://www.dsl.cz/test-mereni-rychlosti'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
time.sleep(1)
vysledek = soup.find_all('div', attrs={'class':'results'})
for job_data in vysledek:
#Výsledek stahování
stahovani = job_data.find('span', attrs={"id":"download-result"})
print("Test rychlosti připojení: " str(stahovani))
#Výsledek ukládání
ukladani = job_data.find('span', attrs={"id":"upload-result"})
print("Test stahování připojení: " str(ukladani))
#Poskytovatel
poskytovatatel = job_data.find('id', attrs={"id":"provider-result"})
print("Poskytovatel internetu: " str(poskytovatatel))
Что не так с моим кодом? У меня проблема с этим Интернетом, потому что есть что-то, что вычисляет скорость Интернета, и я не знаю, нужно ли для этого использовать только webdriver вместо BeautifulSoup (что мне действительно нужно).
Комментарии:
1. Это нечто называется JavaScript. Страница является динамичной, что означает
bs4
, что эти показатели не будут отображаться.2. Я предлагаю вам использовать решение типа селена здесь. Браузер проводит тест на скорость
Ответ №1:
Я не так уверен, что это возможно с красивым супом и просьбами. Я попробовал что-то подобное с google translate, но это не сработало. Попробуйте использовать selenium
.
Комментарии:
1. Хорошо, Thx за помощью.