为什么我没有得到CSV数据的完整列表,它只替换第一行

b1uwtaje  于 2022-12-27  发布在  其他
关注(0)|答案(1)|浏览(147)
complete_list = [] 

        for item in soup2.findAll("div", {"class": "body"}):
            sub_item = soup2.find('ul',class_="home").find_all('li')
            for x in sub_item:
                for x in soup2.findAll("b"): x.decompose() # removes the b tag
            
            try: 
                a = soup2.find('ul',class_="list m-b-0").find_all('li')[0].text
                b = soup2.find('ul',class_="list m-b-0").find_all('li')[1].text
                c = soup2.find('ul',class_="list m-b-0").find_all('li')[2].text
                d = soup2.find('ul',class_="list m-b-0").find_all('li')[3].text
                e = soup2.find('ul',class_="list m-b-0").find_all('li')[4].text
                f = soup2.find('ul',class_="list m-b-0").find_all('li')[5].text
                g = soup2.find('ul',class_="list m-b-0").find_all('li')[6].text
                h = soup2.find('ul',class_="list m-b-0").find_all('li')[7].text

            except IndexError:
                print('No Data')

            complete_list.append((a,b,c,d,e,f,g,h))

        df = pd.DataFrame(complete_list, columns=['a','b','c','d','e','f','g','h'])
        df.to_csv('doublesix_.csv', index=False, encoding='utf-8')
        
    next_page = soup.select_one('li.page-item.next>a')
    if next_page:
        next_url = next_page.get('href')
        url = urljoin(url, next_url)
    else:
        break

嗨,伙计们,我很累找到的问题,我想得到并保存在csv文件的数据,但我的问题是我只得到第一行。和其他失踪。
如何保存所有数据?
我只是添加了最新的代码,我有即时通讯,但没有得到正确的数据csv文件
更新:已解决

rjzwgtxy

rjzwgtxy1#

value = first_name

            # list of name, degree, score 
            nme = value

valuenme看起来根本没有必要(为什么要这样做?);另外,将变量命名为dict/list/etc也不是最好的主意,因为它们已经有了意义。
但是我的问题是我只得到了第一行
这实际上是令人惊讶的--我希望只保存 * 最后一行 *,因为您是在循环 * 内部 * 写入csv,而且它不是在append模式下[mode='a'类似于 * .to_csv('acs.csv', mode='a') *],所以每次都要覆盖文件。
无论如何,您仍然可以尝试将其保存到循环之外:

namesList = [] # initiate list of names
        for item in soup2.findAll("div", {"class": "box-body light-b"}):
            sub_item = soup2.find('ul',class_="list m-b-0").find_all('li')
            for x in sub_item:
                for x in soup2.findAll("b"): x.decompose() # removes the b tag
            
            try: first_name = soup2.find('ul',class_="list m-b-0").find_all('li')[0].text
            except IndexError:
                print('No Data')
                first_name = None # otherwise you'll be repeating the previous first_name 

            namesList.append(first_name) # add to list of names
                

        df = pd.DataFrame({'name': [namesList]}) 
                
        # saving the dataframe 
        df.to_csv('acs.csv')

相关问题