Python / Beautiful Soup - предел поиска find_all ограничивает результаты - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь получить исторические результаты от Премьер-лиги, но пока html получает все результаты, Beautiful Soup find_all возвращает только 200 результатов (должно быть 463. Есть ли способ решить эту проблему?

Большое спасибо

Мэтт

import requests
from bs4 import BeautifulSoup
url = "https://www.skysports.com/premier-league- 
results/1992-93"
url_content = requests.get(url).content
url_bs = BeautifulSoup(url_content,'html.parser')
match_list = 
url_bs.find_all(attrs="class":"fixres__item"})
print(len(match_list))

1 Ответ

0 голосов
/ 22 ноября 2018
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get('https://www.skysports.com/premier-league-results/1992-93')
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CLASS_NAME, 'plus-more__text')))

if driver.find_element_by_class_name('plus-more__text'):
    print('Found')
    driver.execute_script("arguments[0].scrollIntoView();", driver.find_element_by_class_name('plus-more__text'))
    driver.execute_script("arguments[0].click();", driver.find_element_by_class_name('plus-more__text'))

html = driver.page_source
soup = BeautifulSoup(html, 'lxml')

links = soup.findAll('div', class_='fixres__item')

print(len(links))


driver.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...