北京IT培训
美国上市IT培训机构

010-62126400

北京达内 > 疑难解答 >Python 如何实现快递物流信息查询?

Python 如何实现快递物流信息查询?

  • 时间:2020-11-17 16:18
  • 发布:北京达内
  • 来源:疑难解答

双十一刚结束,Python 如何实现快递物流信息查询?下面和达内北京IT培训机构一起来看看吧!

一、分析网页

快递100网站可以很方便的查询快递的物流信息

二、python代码实现

1. selenium爬虫实现查询

# 根据快递单号查询物流信息

def get_screenshot_and_info():

chrome_driver = r'D:\python\pycharm2020\chromedriver.exe' # chromedriver的路径

options = webdriver.ChromeOptions()

# 关闭左上方 Chrome 正受到自动测试软件的控制的提示

options.add_experimental_option('useAutomationExtension', False)

options.add_experimental_option("excludeSwitches", ['enable-automation'])

# 开启浏览器对象

browser = webdriver.Chrome(options=options, executable_path=chrome_driver)

# 访问这个url

browser.get('https://www.kuaidi100.com/')

# 显示等待

wait = WebDriverWait(browser, 5)

wait.until(ec.presence_of_element_located((By.ID, 'menu-track')))

# 窗口最大化

browser.maximize_window()

browser.find_element_by_name('postid').send_keys(nums)

browser.find_element_by_id('query').click()

time.sleep(1)

browser.find_element_by_id('query').click()

time.sleep(2)

browser.execute_script("window.scrollBy(0, 488)")

# 截图

browser.get_screenshot_as_file(filename='info.png')

items = browser.find_elements_by_xpath('//table[@class="result-info"]/tbody/tr')

print('物流信息查询结果如下:\n')

for item in items:

time_ = item.find_element_by_xpath('.//td[1]').text.replace('\n', ' ')

contex = item.find_element_by_xpath('.//td[3]').text

print(f'时间:{time_}')

print(f'状态:{contex}\n')

browser.quit()

# 显示截图

src = cv.imread(filename='info.png')

src = cv.resize(src, None, fx=0.7, fy=0.7)

cv.imshow('result', src)

cv.waitKey(0)

运行效果如下:

2. requests爬虫实现查询

def query_info(i, j):

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24',

"Referer": "https://www.kuaidi100.com/"

}

url = f'https://www.kuaidi100.com/query?type={j}&postid={i}&temp=0.53162373256954096&phone='

resp = requests.get(url, headers=headers)

# print(resp.text)

datas = json.loads(resp.text)['data']

# print(datas)

print('您的快递物流信息查询结果如下:\n')

for item in datas:

time_ = item['time']

info = item['context']

print(f'时间:{time_}')

print(f'物流状态:{info}' + '\n')

运行结果如下:

requests爬虫查询速度较快,但需要输入快递公司,便于构造接口url来请求查询。

结语

希望达内北京IT培训机构分享的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小编的支持。

达内北京IT培训机构的Python人工智能免费试听课,11月23-27日开课,共5天。10年经验资深工程师授课,全国70个城市330个校区就近试听,也可在线试听。

上一篇:达内北京IT培训班:IT行业学历越来越不重要?
下一篇:2020年中国程序员:薪资和生活现状调查报告

马上预约七天免费体验课

姓名:

电话:

培训机构出来的程序员,是如何拿到高薪的?

程序员12星座性格分析,哪个星座最适合IT行业

年轻人转行互联网,都选择什么岗位?

达内北京it培训班:程序员的一生是怎样的?

选择城市和中心
江西省

贵州省

广西省

海南省