#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() но никакого результата