首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从txt抓取到Pandas DF到txt

从txt抓取到Pandas DF到txt
EN

Stack Overflow用户
提问于 2022-07-02 12:47:11
回答 1查看 35关注 0票数 0

我试图通过selenium将web擦伤保存到Pandas,这应该是追加新值,然后删除重复值,或者从一开始就添加新值。

我正在挣扎于第一步--将数据添加到dataframe中。数据刮取工作,我过去通过file.write保存数据,它工作得很好,但是当我试图将数据传递给DF时,只添加了第一个值(循环通过链接工作,多个值被提取,但没有写到df)。

请协助:(

当前脚本:

代码语言:javascript
复制
for link in links:
    try:
        sleep(randint(5,10))
        driver.get(link)
        myElem = WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.CLASS_NAME, "item" )))
        
#DATA
        #NAME DATA
        try:
            product = [driver.find_element(By.CLASS_NAME, 'name').get_attribute('innerHTML')]
        except Exception:
            product = ["Other"]
        #BRAND DATA
        try:
            brand = [driver.find_element_by_xpath("// span[contains(text(),'Brand')]/following-sibling::p").get_attribute('innerHTML')]
        except Exception:
            brand = ["Other"]
            
    except:
        pass
    
    df = pd.DataFrame(data=list(zip(product, brand)), columns=['Product', 'Brand'])
    print(df)
    df.to_csv('C:/product data DF.txt', sep='\t', mode='w', index=False)

driver.quit()
f.close()
EN

回答 1

Stack Overflow用户

发布于 2022-07-02 12:54:07

对于循环中的每一次,您都要将product创建为一个包含一个项的新列表。brand也是如此。

因此,当您创建DataFrame时,productbrand只包含在循环中处理的最后链接的数据。

相反,您应该在启动循环之前将productbrand创建为空列表,并在循环的每一次迭代中向它们创建.append

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72839162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档