python selenium 爬取亚马逊商品(四)

本文介绍了一个使用Python的Selenium库爬取亚马逊商品信息的完整流程,结合PyQuery、openpyxl和tkinter实现文件对话框交互。用户可以选择关键词文件、设定筛选信息和配送地址,爬取结果存储到Excel中。同时,代码展示了如何处理文件对话框、消息提示框等GUI功能。
摘要由CSDN通过智能技术生成

1、环境

pycharm+selenium+pyquery+openpyxl+tkinter+tkinter.filedialog

2、功能说明

  1. 通过openpyxl读取关键词,爬取亚马逊指定关键词商品 的信息,并将获取到的信息通过openpyxl写入到excel中
  2. 用户可自己选择文件打开和存储的路径
  3. 用户可选择增加或删减查找的信息
  4. 用户可选择配送地址

3、新增文件对话框模块

import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox

root = tk.Tk()# 创建一个Tkinter.Tk()实例
root.withdraw()# 将Tkinter.Tk()实例隐藏
# 参数相关:
# defaultextension: 默认文件的扩展名,该后缀会自动添加
# filetypes: 指定筛选文件类型的下拉菜单,如filetypes=[(‘xlsx’,‘xlsx’)]
# initialdir: 对话框中默认的路径(默认路径是当前文件夹)
# initialfile: 对话框中初始化显示的文件名
# parent: 父对话框(由哪个窗口弹出就在哪个上端)
# title: 弹出对话框的标题
# 选择文件后,会返回显示文件的完整路径,取消的话,会返回空字符串
file_path = filedialog.askopenfilename(initialdir='C:/Users/45906/Desktop',
                                       title='选择关键词存在文件',
                                       filetypes=[('Excel', '.xls .xlsx')])
print("askopenfilename = ", file_path)
save_file = filedialog.asksaveasfilename(title='请选择生成文件存储路径',
                                         initialdir='C:/Users/45906/Desktop',
                                         filetypes=[('Excel', '.xls .xlsx')],                 
                                         defaultextension='.xlsx')
print("asksaveasfilename = ", save_file)
#提示框
messagebox.showinfo("提示","我是一个提示框")
#警告框
messagebox.showwarning('警告','我是一个警告框')
#错误框
messagebox.showerror('错误','我是一个错误框')
#对话框,返回True/Fasle
messagebox.askokcancel('提示', '我是一个对话框吗')
#问题框,返回Yes/No
messagebox.askquestion('提示', '我是一个问题框吗')

4、完整代码

import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.by import By
from pyquery import PyQuery as Pq
import openpyxl
import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox


def change_address(value):

    count = 0
    while True:
        count += 1
        if count > 3:
            ok = messagebox.askokcancel('提示', '超时, 是否退出???')
            if ok:
                exit()
        try:
            driver.find_element_by_id('glow-ingress-line1').click()
            time.sleep(2)
        except Exception as e:
            print("get glow-ingress-line1 id fail!!!,retry")
            driver.refresh()
            time.sleep(5)
            continue
        try:
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值