Beautifulsoup, как получить все значения div id из селектора css - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь получить все совпадения ID с сайта. Сначала я загружаю таблицу и показываю, как распечатать теги все, что только что загрузил, но когда я пытаюсь получить значение div.id, у меня Non; (Я имею в виду именно ID, включенный здесь:

    <div class = "event__match event__match - last event__match - oneLine" id = "g_1_ARFva552" title = "Click for match detail!">

Если кто-нибудь может мне помочь, как я могу загрузить все идентификаторы совпадений ...

Это мой код:

browser.get("https://www.flashscore.com/football/")
sleep(3)
source = browser.page_source # Get the entire page source from the browser
if browser is not None :browser.close() # No need for the browser so close it 
soup = BeautifulSoup(source,'html.parser')
try:
    Tags = soup.select('div.leagues--live') # get the elements using css selectors
    print(Tags)
    for tag in Tags: # loop through them 
        matchId = tag.find('div').get('id')
        print (matchId)


except Exception as e:
    print(e)

Заранее благодарю за помощь

1 Ответ

1 голос
/ 22 января 2020

Если вы используете селен и bs4, тогда вызывайте WebDriverWait и ждите visibility_of_element_located () вместо sleep()

. Используйте следующий селектор css, чтобы вернуть все элементы div, имеющие атрибут id.

Код:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup

browser=webdriver.Chrome()
browser.get("https://www.flashscore.com/football/")
WebDriverWait(browser,20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"div.leagues--live")))
source = browser.page_source # Get the entire page source from the browser
if browser is not None :browser.close() # No need for the browser so close it
soup = BeautifulSoup(source,'html.parser')
try:
    Tags = soup.select("div.leagues--live div[title='Click for match detail!'][id]") # get the elements using css selectors
    for tag in Tags: # loop through them
        print (tag['id'])
except Exception as e:
    print(e)

Выход :

g_1_tlPhaQm9
g_1_Cx3yi2ek
g_1_G6H5dOXR
g_1_dh16mtAI
g_1_8WUO5NPn
g_1_tlkj9gx4
g_1_fH8eMl74
g_1_l4weOAxh
g_1_2sC3KSyH
g_1_MVOy2KLk
g_1_K4aSodm5
g_1_MDNDnZxN
g_1_ptl2EDRi
g_1_v3aeymC2
g_1_t6GdSgqn
g_1_bsB1RDbh
g_1_xY95QXDb
g_1_Wf99PiT4
...so on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...