之前在學習爬蟲時,偶爾會遇到一些問題是有些網站需要登錄后才能爬取內容,有的網站會識別是否是由瀏覽器發出的請求。
一、headers的獲取
就以博客園的首頁為例:http://www.cnblogs.com/
打開網頁,按下F12鍵,如下圖所示:
點擊下方標簽中的Network,如下:
之后再點擊下圖所示位置:
找到紅色下划線位置所示的標簽並點擊,在右邊的顯示內容中可以查看到所需要的headers信息。
一般只需要添加User-Agent這一信息就足夠了,headers同樣也是字典類型;
user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36' headers = { 'User-Agent' : user_agent }
二、data獲取
以博客園登錄界面為例:http://passport.cnblogs.com/user/signin?ReturnUrl=http%3A%2F%2Fwww.cnblogs.com%2F
按下F12鍵,如下圖所示:
點擊Network,然后隨意輸入用戶名和密碼,點擊登錄可以看到如下圖所示:
博客園登錄的data信息:
data={ input1:"*******", input2:"*******", remember:"false" }
以電驢下載網站為例:http://secure.verycd.com/signin?error_code=emptyInput&continue=http://www.verycd.com/
data信息在From Data標簽中:
data={ username:"****", password:"****", continue:"http://www.verycd.com/" fk:" ", save_cookie:1, login_submit:"登錄" }
每一個登錄網站的data信息不一定一樣,都需要進入網頁確定。
好啦,今天就到這了~明天介紹一個實例:如何爬取糗百的段子。
轉載時注明原作者出處:Maple2cat|Python爬蟲學習:四、headers和data的獲取