Не удается распечатать идентификационный номер

#python #beautifulsoup

#python #beautifulsoup

Вопрос:

Вот код: импорт запросов из bs4 import BeautifulSoup

 r = requests.get('http://zq.win007.com/big/League/2019-2020/31.html')
soup = BeautifulSoup(r.text, 'html.parser')
league_table = soup.find('div', class_ = 'tdsolid')
for item in league_table.findAll('tr id'):
        print(item)
  

Ожидаемый результат:
1740522
1740525
1740529
1740528
1740527
1740530
1740521
1740526
1740524
1740523

Ответ №1:

Потому что результат загружается с помощью javascript, и вы не можете получить выходные данные по запросам. Рассмотрите возможность использования selenium.

 from selenium import webdriver
import time
from bs4 import BeautifulSoup

url = "http://zq.win007.com/big/League/2019-2020/31.html"

browser = webdriver.Chrome("YOUR CHROME DRIVER PATH")
browser.get(url)
time.sleep(10)
soup = BeautifulSoup(browser.page_source, 'html.parser')
league_table = soup.find('table', class_ = 'tdlink lh17 fixedtable')
for item in league_table.findAll('tr'):
        print(item.get("id"))
browser.quit()
  

Комментарии:

1. Спасибо, Яш Шах. Код в порядке. И у меня был еще один вопрос: как я могу получить все идентификаторы через каждый раунд 1 … 38?

2. затем вам нужно имитировать щелчки с помощью selenium. каждый раунд имеет один и тот же класс

3. я добавил код перед soup. элементы = driver.find_elements_by_class_name(«lsm1») для e в элементах: e.click() но никакого результата