Python 爬蟲是一種強(qiáng)大的工具,能夠自動(dòng)化地獲取海量數(shù)據(jù),但是有些網(wǎng)站需要登錄才能訪問,因此我們要學(xué)會(huì)如何使用 Python 爬蟲進(jìn)行偽登錄。
# 導(dǎo)入模塊 import requests from bs4 import BeautifulSoup # 構(gòu)造請(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' } # 構(gòu)造登錄數(shù)據(jù) data = { 'username': 'your_username', 'password': 'your_password' } # 發(fā)送 POST 請(qǐng)求 login_url = 'http://www.example.com/login' session = requests.session() response = session.post(login_url, headers=headers, data=data) # 獲取登錄后的頁(yè)面 profile_url = 'http://www.example.com/profile' response = session.get(profile_url, headers=headers) # 解析頁(yè)面內(nèi)容 soup = BeautifulSoup(response.text, 'html.parser') profile_info = soup.find('div', {'class': 'profile-info'}) # 輸出登錄后頁(yè)面的信息 print(profile_info.text)
在代碼中,我們首先構(gòu)造了請(qǐng)求頭和登錄數(shù)據(jù),然后使用 requests 庫(kù)發(fā)送 POST 請(qǐng)求,從而實(shí)現(xiàn)偽登錄。我們使用 session 來(lái)保存 cookie,以便后續(xù)的請(qǐng)求能夠獲取登錄狀態(tài)。
最后,我們可以使用 BeautifulSoup 庫(kù)對(duì)登錄后的頁(yè)面進(jìn)行解析,獲取需要的信息。