经过上一步的模拟登陆后,cookie已经下载到本地的cookies文件中,在之后的访问中带入cookie就可以得到登陆后的页面。
下面是用urllib包的时候载入cookie
import urllib.request
from bs4 import BeautifulSoup
import http.cookiejar
filename='cookies'
cookie = http.cookiejar.LWPCookieJar(filename)
cookie.load(filename,ignore_discard=True)#从文件中读取cookie内容到变量
handler = urllib.request.HTTPCookieProcessor(cookie) # 加载cookies
opener = urllib.request.build_opener(handler)
get_url = 'http://www.zhihu.com'
get_request = urllib.request.Request(get_url)
get_response = opener.open(get_request).read().decode("utf-8")
bs = BeautifulSoup(get_response)
print(bs.text)
用requests在模拟中加载cookie,刚开始的时候一直返回500,加了headers之后返回200了。
import http.cookiejar
import requests
agent = 'Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0'
headers = {
'User-Agent': agent
}
session = requests.session()
session.cookies = http.cookiejar.LWPCookieJar(filename='cookies')
session.cookies.load(ignore_discard=True)
res=session.get("https://www.zhihu.com",headers=headers)
print(res.status_code)