利用cookie爬取頁面
阿新 • • 發佈:2019-01-05
在登入網站的過程中,有的網頁只有通過登入之後,才能顯示出來。並且有的網頁登入和不登入是不一樣的。如果通過爬蟲抓取的話,可以通過先登入一次然後通過cookie來進行登入。
測試網頁為麥子學校的登入頁面
#!/usr/bin/env python
#coding=utf-8
import urllib
import urllib2
import cookielib
from bs4
import BeautifulSoup
def login():loginUrl= 'http://www.maiziedu.com/user/login/'
values= {'account_l':'****','password_l'
headers= {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87Safari/537.36'}
filename = 'cookie.txt'
cookie= cookielib.MozillaCookieJar(filename)
opener =urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
postdata = urllib.urlencode(values)
cookie.save(ignore_discard=True,ignore_expires=True)
listurl = 'http://www.maiziedu.com/home/base/'
result1= opener.open(listurl)
bsObj = BeautifulSoup(result1.read(),'html.parser')
title = bsObj.body.h1
returntitle
if __name__ == '__main__':
res = login()
print'no result'
else:
printres
loginUrl是登入的URL,values是登入的過程中需要輸入的使用者名稱和密碼。下面是建立cookie並且將cookie儲存到檔案中。當第一次登入成功,獲取到cookie之後,在爬取需要登入才能獲取到的URL。