通常,很多网站需要登录才能进行浏览,所以在爬取这些网站时,也需要进行登录,并拿取登录时的cookie
看到网站有篇文章《爬取邮政服务网点》使用了cookie爬网页,打算尝试一下。
我的环境是win10下的python2.7
step1.创建cookie.txt文件
获取cookie,并保存到cookie.txt(获取上海邮政网点)
# --coding:utf-8-- #
# cookie信息的加载与保存
import urllib
import urllib2
import cookielib
cookiejar = cookielib.MozillaCookieJar("cookie.txt")
cookiejar.load(ignore_discard=True)
handler = urllib2.HTTPCookieProcessor(cookiejar)
opener = urllib2.build_opener(handler)
resp = opener.open("http://iframe.chinapost.com.cn/jsp/type/institutionalsite/SiteSearchJT.jsp?community=ChinaPostJT&province=%E4%B8%8A%E6%B5%B7%E5%B8%82&pos=")
# ignore_discard=True 忽略被抛弃的东西(忽略过时的cookie信息)
cookiejar.save(ignore_discard=True)
for cookie in cookiejar:
print cookie
print "Cookie保存成功".decode('utf8').encode('gbk')
运行后,报错如下
cookielib.LoadError: 'cookie.txt' does not look like a Netscape format cookies file
查了网上攻略,原来需要在cookie.txt文件开头添加一句
# Netscape HTTP Cookie File
再次运行后,成功。
cookie.txt文件内容如下
# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This is a genera