回顧
小餅乾 cookie, 能夠用來模擬登陸
wordpress-edu-3autumn.localprod.forc.work
若是你想評論, 須要先登陸...
登陸地址: wordpress-edu-3autumn.localprod.forc.work/wp-login.ph…
測試帳號:spiderman,密碼:crawler334566
登陸後, 顯示評論框
發表評論後, 能夠看到以前發表的評論
接着說回登陸頁面...
cookies及其用法
通常當你登陸一個網站,你都會在登陸頁面看到一個可勾選的選項「記住我」,
若是你勾選了,之後你再打開這個網站就會自動登陸,這就是cookie在起做用
當登陸博客帳號spiderman,並勾選「記住我」,服務器會生成一個cookies和spiderman帳號綁定。
服務器把這個cookies告訴你的瀏覽器,讓瀏覽器把cookies存儲到你的本地電腦。
下一次,瀏覽器帶着cookies訪問博客,服務器會知道你是spiderman,不須要再重複輸入帳號密碼
cookies也是有時效性的,過時後就會失效。
哪怕勾選了「記住我」,但一段時間過去了,網站仍是會提示你要從新登陸
書寫登陸代碼...
import requests
#引入requests。
url = ' https://wordpress-edu-3autumn.localprod.forc.work/wp-login.php'
#把登陸的網址賦值給url。
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}
#加請求頭,前面有說過加請求頭是爲了模擬瀏覽器正常的訪問,避免被反爬蟲。
data = {
'log': 'spiderman', #寫入帳戶
'pwd': 'crawler334566', #寫入密碼
'wp-submit': '登陸',
'redirect_to': 'https://wordpress-edu-3autumn.localprod.forc.work/wp-admin/',
'testcookie': '1'
}
#把有關登陸的參數封裝成字典,賦值給data。
login_in = requests.post(url,headers=headers,data=data)
#用requests.post發起請求,放入參數:請求登陸的網址、請求頭和登陸參數,而後賦值給login_in。
print(login_in)
#打印login_in
複製代碼
再看看發表評論時的請求...
發表評論所須要的代碼, 注意註釋...
import requests
# 登陸, 獲取cookies
url = "https://wordpress-edu-3autumn.localprod.forc.work/wp-login.php"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
data = {
'log': 'spiderman',
'pwd': 'crawler334566',
'rememberme': 'forever',
'wp-submit': '登陸',
'redirect_to': 'https://wordpress-edu-3autumn.localprod.forc.work',
'testcookie': '1'
}
res = requests.post(url, headers=headers, data=data)
# 使用cookies來發表評論
url1 = "https://wordpress-edu-3autumn.localprod.forc.work/wp-comments-post.php"
data1 = {
'comment': 'hello world again',
'submit': '發表評論',
'comment_post_ID': '23',
'comment_parent': '0'
}
comment = requests.post(url1, headers=headers, data=data1, cookies=res.cookies)
print(comment.status_code)
複製代碼
貓哥教你寫爬蟲 000--開篇.md
貓哥教你寫爬蟲 001--print()函數和變量.md
貓哥教你寫爬蟲 002--做業-打印皮卡丘.md
貓哥教你寫爬蟲 003--數據類型轉換.md
貓哥教你寫爬蟲 004--數據類型轉換-小練習.md
貓哥教你寫爬蟲 005--數據類型轉換-小做業.md
貓哥教你寫爬蟲 006--條件判斷和條件嵌套.md
貓哥教你寫爬蟲 007--條件判斷和條件嵌套-小做業.md
貓哥教你寫爬蟲 008--input()函數.md
貓哥教你寫爬蟲 009--input()函數-人工智能小愛同窗.md
貓哥教你寫爬蟲 010--列表,字典,循環.md
貓哥教你寫爬蟲 011--列表,字典,循環-小做業.md
貓哥教你寫爬蟲 012--布爾值和四種語句.md
貓哥教你寫爬蟲 013--布爾值和四種語句-小做業.md
貓哥教你寫爬蟲 014--pk小遊戲.md
貓哥教你寫爬蟲 015--pk小遊戲(全新改版).md
貓哥教你寫爬蟲 016--函數.md
貓哥教你寫爬蟲 017--函數-小做業.md
貓哥教你寫爬蟲 018--debug.md
貓哥教你寫爬蟲 019--debug-做業.md
貓哥教你寫爬蟲 020--類與對象(上).md
貓哥教你寫爬蟲 021--類與對象(上)-做業.md
貓哥教你寫爬蟲 022--類與對象(下).md
貓哥教你寫爬蟲 023--類與對象(下)-做業.md
貓哥教你寫爬蟲 024--編碼&&解碼.md
貓哥教你寫爬蟲 025--編碼&&解碼-小做業.md
貓哥教你寫爬蟲 026--模塊.md
貓哥教你寫爬蟲 027--模塊介紹.md
貓哥教你寫爬蟲 028--模塊介紹-小做業-廣告牌.md
貓哥教你寫爬蟲 029--爬蟲初探-requests.md
貓哥教你寫爬蟲 030--爬蟲初探-requests-做業.md
貓哥教你寫爬蟲 031--爬蟲基礎-html.md
貓哥教你寫爬蟲 032--爬蟲初體驗-BeautifulSoup.md
貓哥教你寫爬蟲 033--爬蟲初體驗-BeautifulSoup-做業.md
貓哥教你寫爬蟲 034--爬蟲-BeautifulSoup實踐.md
貓哥教你寫爬蟲 035--爬蟲-BeautifulSoup實踐-做業-電影top250.md
貓哥教你寫爬蟲 036--爬蟲-BeautifulSoup實踐-做業-電影top250-做業解析.md
貓哥教你寫爬蟲 037--爬蟲-寶寶要聽歌.md
貓哥教你寫爬蟲 038--帶參數請求.md
貓哥教你寫爬蟲 039--存儲數據.md
貓哥教你寫爬蟲 040--存儲數據-做業.md
貓哥教你寫爬蟲 041--模擬登陸-cookie.md
貓哥教你寫爬蟲 042--session的用法.md
貓哥教你寫爬蟲 043--模擬瀏覽器.md
貓哥教你寫爬蟲 044--模擬瀏覽器-做業.md
貓哥教你寫爬蟲 045--協程.md
貓哥教你寫爬蟲 046--協程-實踐-吃什麼不會胖.md
貓哥教你寫爬蟲 047--scrapy框架.md
貓哥教你寫爬蟲 048--爬蟲和反爬蟲.md
貓哥教你寫爬蟲 049--完結撒花.mdphp