#python #selenium #selenium-webdriver #web-scraping #selenium-chromedriver
Вопрос:
Этот сайт:
https://int.soccerway.com/international/europe/european-championships/c25/
EUROPE
European Championship
2020
Group Stage
Final Stages
EC Qualification
WC Qualification Europe
UEFA Nations League
Baltic Cup
В нем есть две ссылки в левом боковом меню «Расширить Group Stage
» и Final Stages
:
https://int.soccerway.com/international/europe/european-championships/2020/group-stage/r38188/
https://int.soccerway.com/international/europe/european-championships/2020/s13030/final-stages/
Мне удается собирать ссылки, но когда я пытаюсь открывать страницы одну за другой, она останавливается только на первой ссылке и не открывает вторую, что я должен изменить?
url = "https://int.soccerway.com/international/europe/european-championships/c25/"
driver.get(url)
links_level_2 = driver.find_elements_by_xpath("//ul[contains(@class,'level-2')]/li/a")
for link_level_2 in links_level_2:
level_2 = link_level_2.get_attribute("href")
driver.get(level_2)
Ответ №1:
Вы можете легко это сделать с beautifulsoup
помощью .
Поскольку вы четко не упомянули, что это links
такое, я предполагаю, что вы пытаетесь извлечь links
информацию, ul
просматривая наш код.
Вот используемый код beautifulsoup
. Это позволит вам перейти по ссылкам <ul>
из обеих упомянутых ссылок.
import bs4 as bs
import requests
urls = ['https://int.soccerway.com/international/europe/european-championships/2020/group-stage/r38188/', 'https://int.soccerway.com/international/europe/european-championships/2020/s13030/final-stages/']
headers = {"User-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"}
#Code to get the ULs
for url in urls:
resp = requests.get(url, headers=headers)
soup = bs.BeautifulSoup(resp.text, 'lxml')
ls = soup.find('ul', class_='level-2').findAll('li')
for i in ls:
print(i.find('a')['href'])
print('n')
/international/europe/european-championships/2020/group-stage/r38188/
/international/europe/european-championships/2020/group-stage/group-a/g10136/
/international/europe/european-championships/2020/group-stage/group-b/g10137/
/international/europe/european-championships/2020/group-stage/group-c/g10138/
/international/europe/european-championships/2020/group-stage/group-d/g10139/
/international/europe/european-championships/2020/group-stage/group-e/g10140/
/international/europe/european-championships/2020/group-stage/group-f/g10141/
/international/europe/european-championships/2020/s13030/final-stages/
/international/europe/european-championships/2020/group-stage/r38188/
/international/europe/european-championships/2020/s13030/final-stages/