1. 程式人生 > >利用cookie爬取頁面

利用cookie爬取頁面

在登入網站的過程中,有的網頁只有通過登入之後,才能顯示出來。並且有的網頁登入和不登入是不一樣的。如果通過爬蟲抓取的話,可以通過先登入一次然後通過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)
   
result= opener.open(loginUrl,postdata)
    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()
   
ifres == None:
       
print'no result'
   
else:
       
printres

loginUrl是登入的URL,values是登入的過程中需要輸入的使用者名稱和密碼。下面是建立cookie並且將cookie儲存到檔案中。當第一次登入成功,獲取到cookie之後,在爬取需要登入才能獲取到的URL。