在循环内附加数据框

时间:2019-03-15 22:28:45

标签: python pandas selenium

我试图通过遍历元素然后单击分页来获取链接列表。我不确定在经过如下所示的分页之后如何在熊猫数据框中添加每个循环,以便我可以在循环外部调用该数据框以列出所有链接。

它总是覆盖并打印出最后一行。

while True:

    links = [link.get_attribute('href') for link in driver.find_elements_by_class_name('view-detail-link')]

    for link in links:

        df_links = pd.DataFrame([[link]], columns=['link'])

    try:

        NextPage = driver.find_element_by_xpath('//a[@class="ui-pagination-next ui-goto-page"]')
        driver.execute_script("arguments[0].click();", NextPage)

        time.sleep(3)

    except NoSuchElementException:
        break

print(df_links.link[0])

1 个答案:

答案 0 :(得分:1)

您需要在循环之外创建DataFrame。然后,每次在循环中创建一个新的DataFrame时,都会将其附加到主要的一个:

df = pd.DataFrame()

while True:

    links = [link.get_attribute('href') for link in driver.find_elements_by_class_name('view-detail-link')]

    for link in links:

        df_links = pd.DataFrame([[link]], columns=['link'])
        df = df.append(df_links)

    try:

        NextPage = driver.find_element_by_xpath('//a[@class="ui-pagination-next ui-goto-page"]')
        driver.execute_script("arguments[0].click();", NextPage)

        time.sleep(3)

    except NoSuchElementException:
        break

print(df.link[0])