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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们上一篇文章已经获取到淘宝的数据写入了.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()

爬取网页数据并将其写入Excel是一个常见的数据抓取和处理任务,通常使用Python中的库如BeautifulSoup(用于解析HTML)和pandas(用于操作数据)。以下是一个简单的步骤概述: 1. **安装必要的库**: - 安装 `requests` 库,用于发送HTTP请求获取网页内容。 - 安装 `beautifulsoup4` 库,用于解析HTML或XML文档。 - 安装 `pandas` 库,用于创建和操作Excel文件。 ```bash pip install requests beautifulsoup4 pandas openpyxl (如果你要写入xlsx格式) ``` 2. **发送请求获取网页内容**: 使用 `requests.get()` 函数获取网页的HTML源代码。 3. **解析HTML内容**: 使用 BeautifulSoup 创建一个解析器对象,然后找到需要的数据元素。 4. **提取数据**: 解析HTML,查找目标标签内的数据,并将其存储在一个列表或字典中。 5. **将数据转换为pandas DataFrame**: 将提取的数据结构转换成pandas DataFrame,这将使数据操作更加方便。 6. **写入Excel文件**: 使用 `DataFrame.to_excel()` 方法将DataFrame写入Excel文件,可以选择`.csv` 或 `.xlsx` 格式。 ```python import requests from bs4 import BeautifulSoup import pandas as pd # 发送请求 url = 'https://example.com' response = requests.get(url) # 解析HTML soup = BeautifulSoup(response.text, 'html.parser') # 提取数据(假设我们提取的是表格数据) data = [] table = soup.find('table') # 替换为实际的标签名 rows = table.find_all('tr') for row in rows: cols = row.find_all('td') # 或者 th 根据实际 cols = [col.text.strip() for col in cols] data.append(cols) # 转换为DataFrame df = pd.DataFrame(data, columns=['Column1', 'Column2']) # 根据实际列名 # 写入Excel df.to_excel('output.xlsx', index=False) # 输出到 .xlsx 文件 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

胖子是个潜力股

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

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

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

打赏作者

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

抵扣说明:

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

余额充值