Не добавлено первое значение в списке из цикла for - PullRequest
0 голосов
/ 22 сентября 2019

Я хочу создать DataFrame из списка, используя цикл for.Но только последнее значение добавляется в DataFrame.Нужно решение для этого.Я очень новичок в этой теме.просто пытаюсь решить личную проблему.

Я могу напечатать значения, которые мне нужны, с помощью приведенного ниже кода.Но когда я пытаюсь добавить эти значения в DataFrame, это только добавление последнего значения из списка.

import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import selenium.common.exceptions
import time 
driver = webdriver.Chrome(executable_path='chromedriver')
catlink=['https://www.daraz.com.bd/small-kitchen-appliances/','https://www.daraz.com.bd/bedding-bath/']
for link in catlink:
    driver.get(link)
    time.sleep(10)
    for i in range(0,8):
        driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div[1]/div/div[3]').click()
        i+=i
        elements = driver.find_elements_by_css_selector("div > div:nth-child(2) > div.c2xMr_ > div.ant-carousel > div > div.slick-list>* a")
        for element in elements:
            print(driver.title)
            print(element.get_attribute("href"))
import pandas as pd 
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import selenium.common.exceptions
import time 

driver = webdriver.Chrome(executable_path='chromedriver')
catlink=['https://www.daraz.com.bd/small-kitchen-appliances/','https://www.daraz.com.bd/bedding-bath/']
for link in catlink:
    driver.get(link)
    time.sleep(10)
    for i in range(0,8):
        try:
            driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div[1]/div/div[3]').click()
            time.sleep(4)
            i+=1
            elements = driver.find_elements_by_css_selector("div > div:nth-child(2) > div.c2xMr_ > div.ant-carousel > div > div.slick-list>* a")
            title=[]
            # hreflink=[]
            for element in elements:
                title.append({'title':driver.title,'link':element.get_attribute("href")})
                df=pd.DataFrame(title)

        except (selenium.common.exceptions.NoSuchElementException):
            NoBanner=list()
            NoBanner.append(driver.title) 
            continue ```

I tried this but now showing the expected result.

1 Ответ

0 голосов
/ 22 сентября 2019

Вы создаете новый фрейм данных для каждой итерации цикла for element in elements и присваиваете его переменной df, перезаписывая, таким образом, предыдущее значение df.

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