爬取虾米音乐时,模拟登陆网页版地址https://login.xiami.com/member/login后,返回的是一串字符(包括status、jumpurl以及账号信息等),但无法获取跳转后的网页(http://www.xiami.com/);通过HttpFox发现:为了得到网页,必须发送登录时获取的cookie,于是添加cookie再进行爬取就可以了
附录的代码:
#! /usr/bin/env python2.7 # encoding=utf-8 import re import urllib,cookielib,urllib2 cookie = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) postdata = urllib.urlencode({ 'email' : '(省略)', 'password' : '(省略)', 'submit' : '%E7%99%BB%E5%BD%95', '_xiamitoken' : '(省略)', 'done' : 'https://www.xiami.com', 'from' : 'web', 'havanaId' : '' }) postdata = postdata.encode('utf-8') login_headers = { 'Referer' : 'https://www.xiami.com/', 'User-Agent' : 'Chrome/45.0.2454.101', } url = 'https://login.xiami.com/member/login' req = urllib2.Request(url,postdata) #result = opener.open(req) result = urllib2.urlopen(req) print result.read()
获取到的字符串:
{"status":true,"message":"success","data":{"user_id":"(省略)","nick_name":"(省略)"},"jumpurl":"https:\/\/www.xiami.com"}