利用 Python 爬蟲實現快遞物流資訊查詢
希望你拼命爭取的,最後都能如你所願。
文章目錄
很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!
QQ群:961562169
一、分析網頁
快遞100網站可以很方便的查詢快遞的物流資訊
二、python程式碼實現
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
import cv2 as cv
# 根據快遞單號查詢物流資訊
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)
if __name__ == '__main__':
nums = input('請輸入您的單號:')
print('\n')
get_screenshot_and_info()
執行效果如下:
import requests
import json
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')
if __name__ == '__main__':
delivery_dic = {
'圓通': 'yuantong', '申通': 'shentong', '中通': 'zhongtong', '百世快遞': 'huitongkuaidi',
'韻達': 'yunda', '順豐': 'shunfeng', '天天快遞': 'tiantian', '郵政': 'youzhengguonei',
'EMS': 'ems', '京東': 'jd', '德邦快遞': 'debangwuliu', '極兔快遞': 'jtexpress'
}
post_id = input('請輸入你要查詢物流的快遞單號:')
delivery = input('請輸入快遞公司:')
query_info(post_id, delivery_dic[delivery])
執行結果如下:
requests爬蟲查詢速度較快,但需要輸入快遞公司,便於構造介面url來請求查詢。
相關文章
- .netcore 寫快遞100的快遞物流資訊查詢介面NetCore
- 快遞物流查詢介面通用demo
- 全自動多介面快遞查詢工具 批量查詢中通、圓通等快遞物流資訊
- 基於快遞鳥的快遞物流查詢介面
- 實現快遞單號物流資訊介面APIAPI
- 快遞查詢 API 介面:讓物流資訊一目瞭然API
- 極兔快遞怎麼查詢物流資訊 支援匯出查詢結果嗎?
- springBoot + 工廠模式 實現 快遞鳥、順豐和快遞100的物流查詢Spring Boot模式
- 想要批次查詢快遞,怎麼操作可以一鍵快速查詢物流資訊
- 【python爬蟲】郵政包裹物流查詢2瑞數6加密Python爬蟲加密
- 線上分享批次查詢快遞物流的工具
- 快遞物流查詢API有什麼作用?API
- 怎麼使用電腦查詢快遞物流資訊,極兔有什麼平臺支援查詢
- 快遞物流資訊訂閱與推送API:打造高效的快遞物流資訊服務API
- 常用快遞單號物流查詢介面通用API(JAVA快遞鳥對接)APIJava
- 物流快遞單號查詢介面種類及快遞鳥對接方法
- 自動查詢並分析快遞的物流狀態
- 快遞物流查詢類API介面推薦,含跨境物流、物流軌跡地圖等API地圖
- 快遞鳥api介面實現訂閱物流軌跡單號查詢功能對接呼叫API
- 巧用表格模板匯入來批量查詢多個順豐快遞的物流資訊
- PHP 快遞查詢介面,快遞鳥物流查詢 API 的二次封裝. 輕輕鬆鬆呼叫它PHPAPI封裝
- 線上查詢物流詳情,支援極兔、申通、順豐等快遞批量查詢
- 免費常用快遞單號物流通用API查詢介面(JAVA快遞鳥對接)APIJava
- 物流快遞單號查詢介面種類及對接方法
- 從申請到呼叫:全國快遞物流查詢 API 使用教程API
- 教你批次查詢並篩選極兔快遞簽收物流
- 查詢圓通快遞並設定物流狀態的方法
- 快寶物流查詢API介面API
- 快遞的旅行日記 - 深度挖掘快遞物流地圖軌跡查詢API 的使用場景地圖API
- 關於物流公司呼叫快遞單號查詢API介面的示例API
- 全國快遞物流查詢API,毫秒級響應、超高及時性API
- 小米手機如何用運單號碼查詢快遞資訊 小米手機快速查詢快遞資訊方法
- 原生JS + HTML + CSS 實現快遞物流資訊 API 的資料鏈式展示JSHTMLCSSAPI
- 怎麼利用Python網路爬蟲來提取資訊Python爬蟲
- 快遞查詢 C#C#
- 教你查詢中通快遞並篩選未簽收物流的方法
- Python爬蟲實戰系列4:天眼查公司工商資訊採集Python爬蟲
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲