Соскоб в сети в python с использованием селена и xpath, невозможно получить все ссылки - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь получить список всех гиперссылок, которые появляются в нижней части страницы, чтобы go перейти к следующей странице, но каким-то образом несколько ссылок пропускаются.

import pandas as pd
from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.ui import WebDriverWait

path = r"/Users/******/chromedriver"
options = webdriver.ChromeOptions()
#options.add_argument("--headless") 
browser = webdriver.Chrome(executable_path=path, options=options)

...
...
...

final_df_to_download = pd.DataFrame()
links_year_pages = []                                      # looping to get attributes of all the href elements

for url in final_page_links['url'].to_list()[3:5]:
    browser.get(url)
    time.sleep(np.random.uniform(2.5, 3.9))
    elems_indi = browser.find_elements_by_xpath("//a[@href]")  # parsing all the href elments 

    for elem_year_pages in elems_indi:
        links_year_pages.append(elem_year_pages.get_attribute("href"))

    links_df_year_pages = pd.DataFrame(links_year_pages , columns =['link']) # convert to dataframe to apply str.contain
    #get all pages links 
    page_links_indi = links_df_year_pages[links_df_year_pages['link'].str.contains('** some string which is common across all page links **' ,regex = False)]
    final_df_to_download = final_df_to_download.append(page_links_indi)



В чем может быть ошибка? Или есть ли лучший способ получить ссылки на все последующие страницы?

...