kuaidi100 快递查询

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
#这个模块可以动态等待我们需要的元素出现,再实现find 捕获
#因为单纯使用time的话,元素提前出现你就得多等时间,要是网速慢而没有找到,就会报错。
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC 
#动态监测元素是否满足条件所需要导入的模块
from selenium.webdriver.chrome.options import Options
#从Options模块中调用Options类
chrome_options = Options()
#实例化Option对象
#chrome_options.add_argument('--headless') 
#设置浏览器为静默模式,设置为静默模式报错,估计是kuaidi100的反爬虫机制
chrome_options.add_argument('--disable-gpu')
#把Chrome浏览器设置为禁止加载不必要的资源
driver = webdriver.Chrome(options= chrome_options)  
#设置引擎为Chrome,禁止加载不必要的资源
driver.get('http://www.kuaidi100.com/')
#开始模拟打开网站
WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'postid')))
#打开后就等快递的输入框出现,出现了,我们才罢休
driver.find_element_by_id('postid').send_keys(input('请输入快递单号:73124161428372zhongtong'))
#等到postid出现,查到输入框位置,并输入快递单号
WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.CLASS_NAME,'selection')))
#等待可选线全部出现
comments = driver.find_elements_by_class_name('selection')
for selection in comments:
    print(selection.get_attribute('class'),end=':')
    print(selection.get_attribute('data-code'))
data_code = 'selection'+input('输入快递公司序号:')
#显示跟快递单号相关的快递公司,并交互确认快递公司
driver.find_element_by_class_name(data_code).click()
#输入单号回车,就点击查询按钮
wait = WebDriverWait(driver,20).until(EC.presence_of_all_elements_located((By.CLASS_NAME,'context')))
#显示等待完整的写法,等待所有‘context’元素出现'''
'''print(type(wait))
for i in wait:
    print(i)'''

nowdata = driver.find_element_by_class_name('context')
#查找第一个‘context’元素,根据网页显示规律,第一个就是当前状态
print(nowdata.text)

details = driver.find_elements_by_class_name('context')
#获得所有‘context’元素,显示历史进程
for detail in details:
    print(detail.text)
driver.close()
#关闭浏览器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值