修改 DBNavigator 的 click事件;

 下面的代码,功能在于 把按下 nbPost 和 nbInsert 键时,先判断一下,相关的输入框是否符合你自己的要求。

如果不符合就 Abort 它即可。

同理,可以将其它 按钮进行相应的处理以达到 修改其事件的目的。
  1. procedure TfrmBaseSetup.DBNavigator1BeforeAction(Sender: TObject;
  2.   Button: TNavigateBtn);
  3. begin
  4.    case Button of
  5.      nbPost,nbInsert :begin
  6.        if Trim(DBEditEh1.Text)='' then begin
  7.          MsgBox('种类不能为空!',1);
  8.          DBEditEh1.SetFocus;
  9.          Abort;
  10.        end;
  11.        if Length(DBEditEh2.Text)<>2 then begin
  12.          MsgBox('前缀编号的长度必须为两位数字!',1);
  13.          DBEditEh2.SetFocus;
  14.          Abort;
  15.        end;
  16.      end;
  17.    end;
  18. end;

说明一下:MsgBox 是被我简化过的 MessageBox 函数,代码如下:

  1. function MsgBox(Msg:Variant; Flag:longint=0;Title:string=''):integer;
  2. //简化MessageBox函数
  3. begin
  4.   if length(title)=0 then title:=SApp_Name; 
  5.   case flag of
  6.     0:flag:=MB_OK + MB_ICONINFORMATION;
  7.     1:flag:=MB_OK + MB_ICONERROR;
  8.     2:flag:=MB_YESNO + MB_ICONERROR;
  9.     3:flag:=MB_YESNO + MB_ICONWARNING;
  10.     4:flag:=MB_YesNo +MB_ICONQUESTION;
  11.     else
  12.       flag:=MB_OK + MB_ICONERROR;
  13.   end;  Result:=application.MessageBox(pchar(vartostr(Msg)),pchar(Title),flag);
  14. end;


帮我把启用GPU加速和核心反检测配置,加到下面代码里from DrissionPage import ChromiumPage import time from datetime import datetime import pymysql # -------------------- 数据库配置 -------------------- DB_CONFIG = { 'host': 'localhost', 'user': 'root', 'password': '201515abc', 'database': 'jd', 'port': 3306, 'charset': 'utf8mb4' } # -------------------- 初始化浏览器 -------------------- page = ChromiumPage() # 检测验证码函数 def check_captcha(): # 这里假设验证码页面会有特定的元素,如“快速验证”按钮 captcha_element = page.ele('text=快速验证', timeout=1) if captcha_element: print("检测到验证码,请手动完成验证后按回车键继续...") input() # -------------------- 用户输入与页面加载 -------------------- keyword = input("请输入商品名称:") base_url = f'https://search.jd.com/Search?keyword={keyword}&stock=1&click=0' page.get(base_url) time.sleep(1) check_captcha() # -------------------- 获取总页数 -------------------- click_count = 1 # 默认1页 try: total_pages_element = page.ele('xpath=//*[@id="J_topPage"]/span/i') click_count = int(total_pages_element.text) except Exception as e: print(f"获取总页数失败,使用默认值: {e}") # -------------------- 数据爬取 -------------------- all_item_data = [] for _ in range(click_count): # 滚动页面确保元素加载 page.scroll.to_bottom() time.sleep(3) # 固定等待时间 # 提取商品数据 for div in page.eles('.:gl-item'): item_data = { 'SKU': div.attr('data-sku') or '未获取', '店铺名': div.ele('css:.curr-shop').text if div.ele('css:.curr-shop', timeout=0.1) else '无店铺', '类目ID': div.ele('css:.p-img div[data-catid]').attr('data-catid') if div.ele( 'css:.p-img div[data-catid]', timeout=0.1) else '未获取' } all_item_data.append(item_data) # 击下一页 if _ < click_count - 1: try: next_btn = page.ele('xpath=//a[@class="pn-next"]', timeout=5) next_btn.click() time.sleep(3) check_captcha() # 击下一页后添加验证码检测 except Exception as e: print(f"翻页失败: {e}") break # --------
03-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值