Python 是一種優(yōu)秀的編程語言,利用它,可以輕松地抓取各種網(wǎng)站的數(shù)據(jù)。這里介紹一種使用 Python 抓取訂單信息的方法。
import requests # 設置 session, 在一次會話中可以自動保持 cookie session = requests.Session() def login(): login_url = 'http://www.example.com/login' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 訪問登錄頁面獲取登陸信息,獲取到 cookie session.get(login_url, headers=headers) cookie = session.cookies.get_dict() # 提交登錄請求 data = { 'username': 'your_username', 'password': 'your_password', 'rememberme': '1', 'submit': '登錄' } login_request = session.post(login_url, data=data, headers=headers) if login_request.status_code == 200 and 'failed' not in login_request.url: print('登錄成功') else: print('登錄失敗') def get_order_info(): url = 'http://www.example.com/order_list' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 訪問訂單列表頁獲取訂單信息,此時的 cookie 已經(jīng)包含登錄信息 order_list = session.get(url, headers=headers) # 解析返回的訂單信息 orders = order_list.text.split('\n') for order in orders: if order: info = order.split(',') order_id = info[0] order_time = info[1] order_price = info[2] # 處理每筆訂單信息 process_order(order_id, order_time, order_price) def process_order(order_id, order_time, order_price): # 處理訂單信息,比如存儲到數(shù)據(jù)庫等操作 pass if __name__ == '__main__': # 先登錄 login() # 然后獲取訂單信息 get_order_info()
以上代碼中通過設置 session 實現(xiàn)了在一次會話中自動保持 cookie 的目的。首先訪問登錄頁面,得到 cookie 信息,然后提交登錄請求,此時在同一個 session 中包含了登錄成功后的 cookie。最后訪問訂單列表頁面,然后解析每一筆訂單的信息,執(zhí)行處理訂單的操作。