【问题标题】:web scraping and transferring data excel python网页抓取和传输数据excel python
【发布时间】:2021-04-21 20:59:17
【问题描述】:

我能够完全抓取我需要的材料问题是我无法将数据输入Excel

这是我的代码:(一切正常)

def scrape_data(card):
    try:
        h2 = card.h2
    except:
        title = ''
    else:
        title = h2.text.strip()

    try:       
        price = card.find('span', class_='a-offscreen').text
    except:
        price = ''
    else:
        price = card.find('span', class_='a-offscreen').text
    

    data = {'Titulo':title,  'Preco': price}

    return data


def main():
        url = 'https://www.amazon.com.br/s?k=iphone'
        html = get_html(url)

        soup = BeautifulSoup(html,'lxml')

        cards = soup.find_all('div', {'data-asin':True, 'data-component-type': 's-search-result'})
        
        ads_data = []
        for card in cards:
            data = scrape_data(card)
            ads_data.append(data)
        
        write_xlsx(ads_data)

但我被困在这里,我不知道如何在Excel 文件上迭代字典...

def write_xlsx(ads):
    with xlsxwriter.Workbook('results.xlsx') as workbook:

        worksheet = workbook.add_worksheet()
        
        worksheet.write(0,0,'Titulo')
        worksheet.write(0,1,'Preco')
    
    for i,(k,v) in enumerate(ads.items(),start=1):
        worksheet.write(i,0,k)
        worksheet.write(i,0,v)

【问题讨论】:

    标签: python selenium web-scraping


    【解决方案1】:

    如果您的问题只是迭代字典的条目,我想我可以帮助您:

    items = ads.items()
    for i in range(1, len(items)):
        k, v = items[i]
        worksheet.write(i, 0, k)
        worksheet.write(i, 0, v)
    

    我认为你把事情复杂化了。 :)

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多