Python 是當(dāng)今最流行的程序設(shè)計(jì)語言之一,廣泛應(yīng)用于數(shù)據(jù)科學(xué)、人工智能、機(jī)器學(xué)習(xí)、網(wǎng)絡(luò)爬蟲等領(lǐng)域。這篇文章將重點(diǎn)介紹如何使用 Python 爬取訂單信息。
# 導(dǎo)入需要用到的庫 import requests from bs4 import BeautifulSoup # 目標(biāo)網(wǎng)站和需要爬取的網(wǎng)址 url = 'https://www.example.com/orders' target = 'https://www.example.com/order?id=' # 設(shè)置請(qǐng)求頭 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 發(fā)送請(qǐng)求獲取網(wǎng)頁 response = requests.get(url, headers=headers) # 解析網(wǎng)頁 soup = BeautifulSoup(response.content, 'html.parser') # 獲取訂單編號(hào)列表 order_list = soup.find_all('a', {'class': 'order-number'}) # 遍歷訂單編號(hào)列表并爬取訂單信息 for order in order_list: order_id = order['href'].replace(target, '') # 獲取訂單編號(hào) order_url = target + order_id # 拼接完整的訂單詳情網(wǎng)址 order_response = requests.get(order_url, headers=headers) # 發(fā)送請(qǐng)求獲取訂單詳情頁面 order_soup = BeautifulSoup(order_response.content, 'html.parser') # 解析頁面 order_information = order_soup.find('div', {'class': 'order-information'}) # 獲取訂單信息 print(order_information.text) # 打印訂單信息
以上代碼通過向目標(biāo)網(wǎng)站發(fā)送請(qǐng)求,獲取訂單列表網(wǎng)頁,并從中解析出訂單編號(hào)列表。然后,根據(jù)每個(gè)訂單編號(hào),拼接出完整的訂單詳情網(wǎng)址并發(fā)送請(qǐng)求。再對(duì)每個(gè)訂單詳情頁面進(jìn)行解析,獲取訂單信息,并輸出到控制臺(tái)。
這里需要注意的是,由于有些網(wǎng)站會(huì)對(duì)爬蟲進(jìn)行限制,所以我們?cè)诎l(fā)送請(qǐng)求時(shí)要設(shè)置好請(qǐng)求頭,偽裝成瀏覽器進(jìn)行訪問,以避免被阻攔。代碼中的 headers 對(duì)象就是用來設(shè)置請(qǐng)求頭的。此外,還應(yīng)該合理控制請(qǐng)求頻率,以免給服務(wù)器帶來過大的負(fù)擔(dān)。