用Python实现爬取淘宝的数据并且存入Excel

1、成果展示

开始运行后,程序自己打开浏览器

根据用户代码中的账号密码模拟登录

提示输入搜索内容

输入内容以及页数

回车后浏览器自动跳转爬取内容

提示爬取成功

在改文件目录下存放为Excel文件形式

2、完整代码

import time
from selenium import webdriver
from bs4 import BeautifulSoup

from selenium.webdriver.common.by import By
from openpyxl import Workbook

def taobao():
    # 创建 EdgeOptions 对象
    option = webdriver.EdgeOptions()
    # 添加排除选项,避免被识别为自动化程序
    option.add_experimental_option('excludeSwitches', ['enable-automation'])

    # 创建 edge WebDriver
    driver = webdriver.Edge(options=option)

    # 执行 JavaScript 代码,修改 navigator.webdriver 属性,防止浏览器被识别为自动化程序
    driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
        'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'
    })
    # 打开淘宝登录页面
    driver.get("https://login.taobao.com/member/login.jhtml")

    # fm-login-id
    # 等待3秒,确保页面加载完成
    time.sleep(1)
    driver.find_element(By.ID, 'fm-login-id').click()
    time.sleep(1)
    driver.find_element(By.ID, 'fm-login-id').send_keys('150*********')#更改为你的淘宝登录账号
    time.sleep(1)
    driver.find_element(By.ID, 'fm-login-password').click()
    time.sleep(1)
    driver.find_element(By.ID, 'fm-login-password').send_keys('***************')#更改为你的淘宝登录密码
    time.sleep(1)
    # 点击登录按钮
    login_button = driver.find_element(By.CLASS_NAME, 'login-form > div.fm-btn > button')
    # login-form > div.fm-btn > button
    login_button.click()

    # 等待5秒,确保登录成功
    time.sleep(8)
    # login-form > div.fm-btn > button
    # fm-login-password
    # 搜索商品并获取页面内容
    things = input("输入要找的东西:")
    page = int(input("页数:"))

    wb = Workbook()
    # 创作工作表
    ws = wb.active
    # 设置单元格列宽
    ws.column_dimensions['A'].width = 108  # 设置第一列(列 A)的宽度为 108
    # 添加表头
    ws.append(["商品", "单价", "店铺"])
    for p in range(page):
        url = f"https://s.taobao.com/search?page={p + 1}&q={things}"
        #https://s.taobao.com/search?page=1&q=%E8%A1%A3%E6%9C%8D&tab=all
        driver.get(url)
        time.sleep(5)  # 等待页面加载完成
        soup = BeautifulSoup(driver.page_source, 'html.parser').find_all(attrs={"class": "Card--doubleCardWrapper--L2XFE73"})
        # print(soup)
        last_list = []
        for np in soup:
            excel_list = []
            name = np.find(attrs={"class": "Title--title--jCOPvpf"}).get_text()
            # print(name)
            excel_list.append(name)
            price = "¥" + np.find(attrs={"class": "Price--priceInt--ZlsSi_M"}).get_text()
            excel_list.append(price)
            shop = np.find(attrs={"class": "ShopInfo--shopName--rg6mGmy"}).get_text()
            excel_list.append(shop)
            last_list.append(excel_list)
        for i in last_list:
            ws.append(i)
    wb.save("淘宝.xlsx")
    print("已完成")
    # 关闭浏览器
    driver.quit()
taobao()

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个示例代码,可以帮助您使用Python爬取5000条数据并将数据存入Excel文件中: ```python import requests from bs4 import BeautifulSoup import openpyxl url = 'https://www.example.com' # 需要爬取的网站链接 count = 5000 # 需要爬取数据条数 data_list = [] # 存储爬取数据 # 多次发送HTTP请求并获取网页内容 while len(data_list) < count: response = requests.get(url) html = response.text # 使用BeautifulSoup解析HTML内容,获取所需数据 soup = BeautifulSoup(html, 'html.parser') # ... # 将所需数据添加到列表中 # ... # 处理爬取到的数据 # ... # 将数据保存到Excel文件中 wb = openpyxl.Workbook() ws = wb.active ws.append(['字段1', '字段2', '字段3', ...]) # 添加表头 for data in data_list: ws.append(data) # 添加数据 wb.save('data.xlsx') # 保存Excel文件 ``` 在上面的代码中,我们使用了openpyxl库来创建和操作Excel文件。首先,我们定义了需要爬取的网站链接和需要爬取数据条数。然后,我们使用一个while循环来多次发送HTTP请求并获取网页内容,直到爬取到足够的数据条数为止。 在每次获取到网页内容后,我们使用BeautifulSoup库解析HTML内容,找到所需的数据,并将数据添加到一个列表中。当爬取到足够的数据条数后,我们可以对爬取到的数据进行处理,并将数据保存到Excel文件中。 在保存Excel文件时,我们首先创建了一个工作簿,并添加了一个工作表。然后,我们添加了表头和数据,并将Excel文件保存到本地。 请注意,此方法仅供学习和参考,爬取网站数据可能涉及法律问题,请务必遵守相关法律法规。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值