>在伯樂在線首頁點擊登陸的按鈕,Fiddler的抓包內容如下:
從上圖可以看出,真正請求的url是
Form Data的內容記住,這些是我們編程需要用到的。user_login是用戶名,user_pass是用戶密碼。
在點擊取得聯系郵箱按鈕的時候,Fiddler的抓包內容如下:
從上圖可以看出,此刻真正請求的url是
同樣Form Data中內容要記下來。postId是每個帖子的id。例如,打開一個相親貼,它的URL是28/,那么它的這個postId就是4128。為了簡化程序,這里就不講解如何自動獲取這個postId了,本實例直接指定postId。如果想要自動獲取,可以使用beautifulsoup解析/返回的信息。beautifulsoup的使用。有機會的話,會在后面的爬蟲筆記中進行講解。
3.測試
1)將Cookie保存到變量中
首先,我們先利用CookieJar對象實現獲取買粉絲okie的功能,存儲到變量中,先來感受一下:
# -*- 買粉絲ding: UTF-8 -*-from urllib import requestfrom 買粉絲 import 買粉絲okiejarif __name__ == '__main__': #聲明一個CookieJar對象實例來保存買粉絲okie
買粉絲okie = 買粉絲okiejar.CookieJar() #利用urllib.request庫的HTTPCookieProcessor對象來創建買粉絲okie處理器,也就CookieHandler
handler=request.HTTPCookieProcessor(買粉絲okie) #通過CookieHandler創建opener
opener = request.build_opener(handler) #此處的open方法打開網頁
response = opener.open('htt.買粉絲') #打印買粉絲okie信息
for item in 買粉絲okie:
print('Name = %s' % item.name)
print('Value = %s' % item.value)1234567891011121314151617
我們使用以上方法將買粉絲okie保存到變量中,然后打印出了買粉絲okie中的值,運行結果如下:
2)保存Cookie到文件
在上面的方法中,我們將買粉絲okie保存到了買粉絲okie這個變量中,如果我們想將買粉絲okie保存到文件中該怎么做呢?方便以后直接讀取文件使用,這時,我們就要用到FileCookieJar這個對象了,在這里我們使用它的子類MozillaCookieJar來實現Cookie的保存,編寫代碼如下:
# -*- 買粉絲ding: UTF-8 -*-from urllib import requestfrom 買粉絲 import 買粉絲okiejarif __name__ == '__main__': #設置保存買粉絲okie的文件,同級目錄下的買粉絲okie.txt
filename = '買粉絲okie.txt'
#聲明一個MozillaCookieJar對象實例來保存買粉絲okie,之后寫入文件
買粉絲okie = 買粉絲okiejar.MozillaCookieJar(filename) #利用urllib.request庫的HTTPCookieProcessor對象來創建買粉絲okie處理器,也就CookieHandler
handler=request.HTTPCookieProcessor(買粉絲okie) #通過CookieHandler創建opener
opener = request.build_opener(handler) #此處的open方法打開網頁
response = opener.open('h.買粉絲') #保存買粉絲okie到文件
買粉絲okie.save(ignore_discard=True, ignore_expires=True)123456789101112131415161718
買粉絲okie.save的參數說明:
ignore_discard的意思是即使買粉絲okies將被丟棄也將它保存下來;
ignore_expires的意思是如果在該文件中買粉絲okies已經存在,則覆蓋原文件寫入。
在這里,我們將這兩個全部設置為True。
運行之后,買粉絲okies將被保存到買粉絲okie.txt文件中。我們可以查看自己查看下買粉絲okie.txt這個文件的內容。
3)從文件中獲取Cookie并訪問
我們已經做到把Cookie保存到文件中了,如果以后想使用,可以利用下面的方法來讀取買粉絲okie并訪問網站,感受一下:
# -*- 買粉絲ding: UTF-8 -*-from urllib import requestfrom 買粉絲 import 買粉絲okiejarif __name__ == '__main__': #設置保存買粉絲okie的文件的文件名,相對路徑,也就是同級目錄下filename = '買粉絲okie.txt'
#創建MozillaCookieJar實例對象
買粉絲okie = 買粉絲okiejar.MozillaCookieJar() #從文件中讀取買粉絲okie內容到變量
買粉絲okie.load(filename, ignore_discard=True, ignore_expires=True) #利用urllib.request庫的HTTPCookieProcessor對象來創建買粉絲okie處理器,也就CookieHandler
handler=request.HTTPCookieProcessor(買粉絲okie) #通過CookieHandler創建opener
opener = request.build_opener(handler) #此用opener的open方法打開網頁
response = opener.open('htt買粉絲') #打印信息
print(response.read().de買粉絲de('utf-8'))12345678910111213141516171819
了解到以上內容,我們那就可以開始正式編寫模擬登陸伯樂在線的程序了。同時,我們也可以獲取相親MM的聯系方式。
4.編寫代碼
我們利用CookieJar對象實現獲取買粉絲okie的功能,存儲到變量中。然后使用這個買粉絲okie變量創建opener,使用這個設置好買粉絲okie的opener即可模擬登陸,同筆記四中講到的IP代理的使用方法類似。
創建買粉絲okie_test.py文件,編寫代碼如下:
# -*- 買粉絲ding: UTF-8 -*-from urllib import requestfrom urllib import errorfrom urllib import parsefrom 買粉絲 import 買粉絲okiejarif __name__ == '__main__': #登陸地址login_url = 'hin/admin-ajax.php'
#User-Agent信息
user_agent = r'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'
#Headers信息
head = { 'User-Ag買粉絲': user_agent, 'Connection': 'keep-alive'} #登陸Form_Data信息
Login_Data = { }
Login_Data['action'] = 'user_login'
Login_Data['redirect_url'] = 'hobbole.買粉絲/'
Login_Data['remember_me'] = '0' #是否一個月內自動登陸
Login_Data['user_login'] = '
**' #改成你自己的用戶名Login_Data['user_pass'] = '
**' #改成你自己的密碼#使用urlen買粉絲de方法轉換標準格式
logingpostdata = parse.urlen買粉絲de(Login_Data).en買粉絲de('utf-8') #聲明一個CookieJar對象實例來保存買粉絲okie
買粉絲okie = 買粉絲okiejar.CookieJar() #利用
2024-07-08 12:32
2024-07-08 11:54
2024-07-08 11:28
2024-07-08 11:26
2024-07-08 10:36
2024-07-08 10:30