将淘宝爬取的数据写入Excel表格

这篇博客展示了如何使用Python的Selenium和lxml库从淘宝网站抓取男装商品的名称、销量和价格信息,并将数据保存到Excel表格中。首先,通过Selenium模拟浏览器操作进行搜索,然后解析HTML获取所需数据,最后利用xlwt库将数据写入Excel文件。
摘要由CSDN通过智能技术生成

我们上一篇文章已经获取到淘宝的数据写入了.json文件。现在我们就可以写入Excel表格。

 运行结果是这样子的。

from selenium.webdriver import Chrome
import time
from lxml import etree
import json
import xlwt
#导包
if __name__ == '__main__':
    chrome_obj = Chrome()
    #因为是个类,所以要创建一个对象。
    chrome_obj.get('https://uland.taobao.com/sem/tbsearch?refpid=mm_26632258_3504122_32538762&keyword=%E5%A5%B3%E8%A3%85&clk1=ab1fdcf6365ee8bc6248263f22f49a33&upsId=ab1fdcf6365ee8bc6248263f22f49a33')  # 往浏览器的网页地址栏填入淘宝网址
    #先定位到搜索框
    input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').clear()
    # 输入搜索框数据
    input_obj = chrome_obj.find_element_by_xpath('//*[@id="J_search_key"]').send_keys('男装')
    #定位到点击搜索按钮
    click_obj = chrome_obj.find_element_by_xpath('//*[@id="J_searchForm"]/input')
    # 触发点击
    click_obj.click()

    # 页面等待,等待数据加载完毕
    time.sleep(2)

    # 获取源码数据
    html_data = chrome_obj.page_source

    # 数据的提取:
    html_obj = etree.HTML(html_data)

    # 商品名
    name_list = html_obj.xpath('//div/span[@class="title-text"]/text()')
    print(name_list)
    #商品销量
    sell_info = html_obj.xpath('//div/div[@class="sell-info"]/text()')
    print(sell_info)
    #商品价格//div/span[@class="coupon-price-afterCoupon"]/text()
    jiage = html_obj.xpath('//div/span[@class="coupon-price-afterCoupon"]/text()')
    print(jiage)

    book = xlwt.Workbook(encoding='utf-8', style_compression=0)
                         #表格明如sheet
    sheet = book.add_sheet('淘宝', cell_overwrite_ok=True)
    #写出第一行的列
    col = ('商品名称', '价格', '销量')
    for i in range(0, 3):
         sheet.write(0, i, col[i])
     #将数据合并为一个列表,一个列表里面嵌套多个列表,我们不需要知道有多少,直接len(name_list)就可以知道有多少个
    dict_ = []
    for i in range(len(name_list)):
         dict_1 = [name_list[i], sell_info[i], jiage[i]]
         print(dict_1)
         dict_.append(dict_1)
    print(dict_)
#将数据以一个列表写入Excel表格
    for i in range(0, 60):
         data = dict_[i]
         for j in range(0, 3):
              sheet.write(i + 1, j, data[j])
     #这一步我们要在D:/python项目/ 这个目录下先新建一个叫taobao.xls的文件,不然会报错
    savepath = 'D:/python项目/taobao.xls'
    book.save(savepath)
     #打开文件后要关闭才能运行,不然会报权限不够的错误。
    #关闭浏览器
    chrome_obj.quit()

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将Python爬取数据转化为Excel表格,并带有多个表头,可以使用Python中的pandas库。 下面是一个简单的例子,假设我们已经爬取了一些数据数据以列表的形式存储: ```python data = [['John', 25, 'Male', 'USA'], ['Sarah', 30, 'Female', 'Canada'], ['Bob', 40, 'Male', 'UK']] ``` 我们可以用pandas将数据转换为DataFrame对象: ```python import pandas as pd df = pd.DataFrame(data, columns=['Name', 'Age', 'Gender', 'Country']) ``` 在这个例子中,我们定义了四个表头:Name、Age、Gender和Country。现在我们可以将这个DataFrame对象写入Excel文件中: ```python writer = pd.ExcelWriter('data.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1', index=False) writer.save() ``` 在这个例子中,我们使用了xlsxwriter引擎将数据写入Excel文件中。我们还将sheet_name设置为'Sheet1',并将index设置为False,这样就不会在Excel文件中生成默认的索引列。 如果我们想要在Excel文件中包含多个表头,可以使用pandas的MultiIndex对象。例如,假设我们想要在Excel文件中包含两个表头:Name和Personal Information,可以使用以下代码: ```python header = pd.MultiIndex.from_tuples([('Name', ''), ('Personal Information', 'Age'), ('Personal Information', 'Gender'), ('Personal Information', 'Country')]) df.columns = header writer = pd.ExcelWriter('data.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1', index=False) writer.save() ``` 在这个例子中,我们首先使用MultiIndex对象定义了两个表头:Name和Personal Information,并在Personal Information表头下定义了三个子表头:Age、Gender和Country。然后,我们将这个MultiIndex对象赋值给DataFrame的columns属性,以更新DataFrame的表头。最后,我们将DataFrame写入Excel文件中,并将sheet_name设置为'Sheet1'。 这样,我们就可以在Excel文件中看到两个表头了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖子是个潜力股

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值