for循环生成的字典列表没有很好地转换为数据框

问题描述 投票:0回答:0

blah blah blah blah blah 这糟透了大问题我真的很感激一些帮助。我正在从网站中提取标题和每个标题下的相关单词列表。我最终得到了一个字典列表,每个字典键都有一个值列表:

from bs4 import BeautifulSoup
import pandas as pd
import os.path
listscape_1 = ['iPhone SE 2nd generation',
'iPhone 12 mini',
'iPhone 12',
'iPhone 12 Pro',
'iPhone 12 Pro Max',
'iPhone 13 mini',
'iPhone 13',
'iPhone 13 Pro',
'iPhone 13 Pro Max',
'iPhone SE 3rd generation',
'iPhone 14',
'iPhone 14 Plus',
'iPhone 14 Pro',
'iPhone 14 Pro Max']
storage_capacities= ['+64gb', '+128gb', '+256gb', '+512gb']
listscape = []
for i in listscape_1:
    j=i.replace(' ', '+')
    listscape.append(j)
finallist=[]    
for j in listscape:
    for i in storage_capacities: 
        ji= j+i
        finallist.append(ji)


for searchterm in finallist:
    data = []
    def get_data (searchterm):
        url = f'https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2334524.m570.l1311&_nkw={searchterm}&_sacat=0&LH_TitleDesc=0&LH_Auction=1&LH_FS=1&rt=nc_osacat=0&LH_ItemCondition=3000&LH_Complete=1&LH_Sold=1'
        r=requests.get(url)
        soup= BeautifulSoup(r.text, 'html.parser')
        return soup

    def parse(soup):
        products_list = []
        results = soup.find_all('div',{'class':'s-item__info clearfix'})
        for item in results:   
            products = {
                'title': item.find('div', {'class': 's-item__title'}).text, 
                 'soldprice': float(item.find('span', {'class':'s-item__price'}).text.replace('$','').replace(',','')),
                'solddate': item.select_one('span', {'class':'POSITIVE'}).text.replace('Sold ', ''),
                #'_______':'____________________________________________________________________'
                #'link': item.find('a', {'class': 's-item__link'})['href']
                        }
            products_list.append(products)
        return products_list

    


    soup = get_data(searchterm)
    products_list=parse(soup)
    #print(products_list)
    df=pd.DataFrame(products_list)
    df

product_list 包含不能正确转换为数据框的字典列表

我试过上面的代码,没有得到数据框

python beautifulsoup ebay-api
© www.soinside.com 2019 - 2024. All rights reserved.