python调用浏览器查询快递

话不多说,先上代码

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


# 定义查询快递方法
def getKuaiDi(num):
    print("模拟打开浏览器")
    resulttest = ''
    # 加启动配置,静默模式,不展示浏览器
    option = webdriver.ChromeOptions()
    option.add_argument('headless')
    option.add_experimental_option('excludeSwitches', ['enable-automation'])
    option.add_argument('--disable-blink-features=AutomationControlled')
    # 打开chrome浏览器
    browser = webdriver.Chrome(chrome_options=option)
    # browser = webdriver.Chrome()
    browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",
                            {"source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"})
    # 请求打开网页
    browser.get("https://www.guoguo-app.com/")
    # 清理要搜索的关键词
    browser.find_element(By.ID, 'J_SearchInput').clear()
    # 请求要搜索的关键词
    browser.find_element(By.ID, 'J_SearchInput').send_keys(num)

    try:
        print('进入方式一:验证码弹窗>查询')
        checkEl = browser.find_element(By.LINK_TEXT, "关闭")
        checkEl.click()
        time.sleep(5)
        el = browser.find_element(By.ID, "J_SearchBtn")
        el.click()
        time.sleep(3)
        try:
            # 读取不到,就是有登陆限制
            print('进入方式一:验证码弹窗>查询>正常返回查询结果')
            el2 = browser.find_element(By.ID, 'J_PackageDetail')
            resulttest = el2.text
        except:
            print('进入方式一:验证码弹窗>查询>弹出登陆窗口>无法取得结果')
            resulttest = "登陆"

    except:
        print('进入方式二:直接查询')
        el = browser.find_element(By.ID, "J_SearchBtn")
        el.click()
        time.sleep(3)
        try:
            print('进入方式二,直接查询>弹出验证窗口')
            checkEl = browser.find_element(By.LINK_TEXT, "关闭")
            checkEl.click()
            time.sleep(3)
            # 关闭验证窗口后,重新查询
            el = browser.find_element(By.ID, "J_SearchBtn")
            el.click()
            time.sleep(3)
        except:
            print('进入方式二,直接查询>没有弹窗,直接返回结果')

        # 取得查询结果
        el2 = browser.find_element(By.ID, 'J_PackageDetail')
        resulttest = el2.text

    # 打印查询结果
    print('输出结果:'+resulttest)
    # 关闭浏览器
    browser.quit()
    return resulttest


# path = r"E:\python"
# os.chdir(path)  # 修改工作路径
# 返回一个workbook数据类型的值
workbook = openpyxl.load_workbook('快递查询.xlsx')
sheet = workbook.active  # 获取活动表

# 取第一列,快递单号
columnArr = sheet['A']

for index, j in enumerate(columnArr):
    # 第一行,标题,过滤不查
    if index == 0:
        continue

    if j.value is None:
        print("当前快递单号为空,请注意检查,行" + str(index))
        continue

    # 打印快递号
    print("当前快递单号:"+j.value)

    # 调用查询快递方法
    kdv = getKuaiDi(j.value)

    # 如果查询已要求登陆,则直接结束后面的查询
    if kdv == "登陆":
        break

    # 把查询结果,保存至第二列
    sheet.cell(row=index+1, column=2, value=kdv)


print('----------查询结束-----------')

# 输出文件,另存为
workbook.save('查询结果.xlsx')

利用python调起浏览器 在菜鸟裹裹网站 查询快递信息

一.读取《快递查询.xlsx》里的单号,循环调用快递查询

二.查询的结果,另存EXCEL文件输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值