#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2017-10-18 10:04:04
# @Author : awakeljw ([email protected])
# @Link : http://blog.csdn.net/awakeljw/
# @Version : $Id$
import os
import re
import urllib.request
def login(url):
COOKIE = '你自己的cookie'
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'
referer = 'http://friend.renren.com/managefriends'
HEADERS = {'cookie' : COOKIE,"User-Agent":user_agent,'Referer':referer}
req = urllib.request.Request(url, headers=HEADERS)
page = urllib.request.urlopen(req).read()
return page
id_ufriend = 你的朋友的id
# 获取相册编号
album_url = 'http://photo.renren.com/photo/'+id_ufriend+'/albumlist/v7#'
page = login(album_url)
pattern = re.compile(r'"albumId":"(.*?)",')
page = page.decode('utf-8')
imagelist = re.findall(pattern,page)
num_album = 0
#获取相册内所有照片
photolist={}
for imgurl in imagelist:
photo_url = 'http://photo.renren.com/photo/'+id_ufriend+'/album-'+imgurl+'/v7'
photo_page = login(photo_url)
pattern = re.compile(r'"url":"(.*?).jpg"},')
photo_page = photo_page.decode('utf-8')
photolist[num_album] = re.findall(pattern,photo_page)
num_album +=1
#获取相册名字
album_url = 'http://photo.renren.com/photo/'+id_ufriend+'/albumlist/v7#'
page = login(album_url)
pattern = re.compile(r'"albumName":"(.*?)",')
page = page.decode('utf-8')
namelist = re.findall(pattern,page)
print (namelist)
if '\\' not in namelist[0]:
for i in range(len(namelist)):
if not os.path.isdir(r'I:\pachong\all\ '+ namelist[i]):
os.mkdir(r'I:\pachong\all\ '+ namelist[i])
else:
break
#下载所有图片
x=0
try:
for i in range(num_album):
if photolist[i] != []:
# print(photolist[i])
for imgurl in photolist[i]:
f = open(r'I:\pachong\all\ '+ namelist[i]+'\ '+str(x)+'.jpg','wb')
imgurl_new = imgurl.replace('\\','')
imgurl_new = imgurl_new+'.jpg'
print(imgurl_new)
buf = login(imgurl_new)
f.write(buf)
x+=1
except :
print (r'I:\pachong\all\ '+ namelist[i]+'\ '+str(x)+'.jpg is error')
finally :
print('finish')
什么是cookie
cookie在http请求和http响应的头信息中,cookie是消息头的一种很重要的属性. 当用户通过浏览器首次访问一个域名时,访问的WEB服务器会给客户端发送数据,以保持WEB服务器与客户端之间的状态保持,这些数据就是Cookie,它是 Internet 站点创建的 ,为了辨别用户身份而储存在用户本地终端上的数据,Cookie中的信息一般都是经过加密的,Cookie存在缓存中或者硬盘中,在硬盘中的是一些小文本文件,当你访问该网站时,就会读取对应网站的Cookie信息,Cookie有效地提升了我们的上网体验。一般而言,一旦将 Cookie 保存在计算机上,则只有创建该 Cookie 的网站才能读取它。
为什么需要cookie
Http协议是一个无状态的面向连接的协议,Http协议是基于tcp/ip协议层之上的协议,当客户端与服务器建立连接之后,它们之间的TCP连接一直都是保持的,至于保持的时间是多久,是通过服务器端来设置的,当客户端再一次访问该服务器时,会继续使用上一次建立的连接,但是,由于Http协议是无状态的,WEB服务器并不知道这两个请求是否同一个客户端,这两次请求之间是独立的。 为了解决这个问题, Web程序引入了Cookie机制来维护状态.cookie可以记录用户的登录状态,通常web服务器会在用户登录成功后下发一个签名来标记session的有效性,这样免去了用户多次认证和登录网站。记录用户的访问状态。
比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的,那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。
上述引用于https://www.cnblogs.com/kongzhagen/p/6169023.html