python 抓去淘宝相册并分别下载
来源:互联网 发布:卡盟下单源码 编辑:程序博客网 时间:2024/05/17 02:54
import too
import urllib.request
import re
import os
import json
class Spider:
def __init__(self ,siteUrl):
self.siteUrl = siteUrl;
self.tool = too.Tool();
def getUrlContent(self ,start , end):
# 打开网络地址
for i inrange(start , end + 1):
myUrl = self.siteUrl + "?page=" + str(i);
context = urllib.request.urlopen(myUrl);
context = context.read();
self.getContent(context);
def getContent(self ,context):
context = context.decode("gbk");
pattern = re.compile(
'<div class="list-item".*?pic-word.*?<a href="(.*?)".*?<img src="(.*?)".*?<a class="lady-name.*?>(.*?)</a>.*?<strong>(.*?)</strong>.*?<span>(.*?)</span>',
re.S);
items = re.findall(pattern , context);
for item in items:
print("模特---" + item[2] +",年龄:" + item[3] +",地址:" + item[4])
getNumberPattern = re.compile(r'\d+');
mm_id = getNumberPattern.findall(item[0])[0];
print(mm_id);
self.startSaveUser(mm_id , item[2]);
#进一步获取信息,并保存
def startSaveUser(self ,mm_id , name):
albumsUrl = "https://mm.taobao.com/self/album/open_album_list.htm?_charset=utf-8&user_id%20=" + mm_id +"&page=1";
albumContent = urllib.request.urlopen(albumsUrl);
albumContent = albumContent.read().decode("gbk");
# print(albumContent);
# 开始获取h4标签,用来拿到相册
res = r'<h4>(.*?)</h4>';
albums = re.findall(res , albumContent , re.S|re.M);
for oneAlbum in albums:
# print(oneAlbum);
# 获取相册地址
urlRes = r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')";
oneAlbumUrl = re.findall(urlRes , oneAlbum , re.S|re.M)[0].strip();
print(oneAlbumUrl);
# 获取相册名字
nameRes = r'<a .*?>(.*?)</a>';
albumName = re.findall(nameRes , oneAlbum , re.S|re.M)[0].strip();
albumName = albumName.replace("." , "");
# 开始创建文件夹 模特名字/相册名字
path = name + "/" +albumName;
self.createDir(path);
# 根据相册地址请求所有的图片
self.getAllImages(mm_id , oneAlbumUrl , path);
# 根据相册地址请求图片的方法
def getAllImages(self ,userId, oneAlbumUrl ,path):
oneAlbumUrl = "http://" + oneAlbumUrl;
result = urllib.parse.urlparse(oneAlbumUrl);
param = urllib.parse.parse_qs(result.query , True);
albumId = param["album_id"][0];
imagesUrl = "https://mm.taobao.com/album/json/get_album_photo_list.htm?user_id=" + userId +"&album_id=" + albumId + "&top_pic_id=0&page=1&callback=jsonp254";
# 请求相册地址
imagesResult = urllib.request.urlopen(imagesUrl);
imagesResult = imagesResult.read().decode("gbk");
imagesResult = imagesResult.replace("\r" ,"").replace("\n" ,"").replace("\t" ,"");
imagesResult = imagesResult.split("(")[1].split(")")[0];
imagesData = json.loads(imagesResult);
for index , onImage in enumerate(imagesData["picList"]):
oneImageUrl = "http:" + onImage["picUrl"];
self.saveImageByUrl(oneImageUrl , index , path);
def saveImageByUrl(self ,imgUrl , imageName ,path):
path = path + "/" + str(imageName) + ".jpg";
isExist = os.path.exists(path);
if isExist:
print(path + "已经存在了");
return;
else:
print("开始保存" + path);
imagesData = urllib.request.urlopen(imgUrl).read();
f = open(path , "wb");
f.write(imagesData);
f.close();
def createDir(self ,path):
path = path.strip();
isExist = os.path.exists(path);
if isExist:
print("该路径已经存在,不用创建了");
else:
# print("正在创建路径");
os.makedirs(path);
s = Spider("https://mm.taobao.com/json/request_top_list.htm");
s.getUrlContent(1 , 2);
阅读全文
0 0
- python 抓去淘宝相册并分别下载
- python爬虫学习之路(2)_ 淘宝淘女郎相册打包下载
- python抓去网页一部分
- 使用Python抓去网页中的关键字并保存指定文件中
- 爬虫接口数据抓去,下载图片
- 下载视频并保存至手机相册
- python3抓包百度图片并下载
- Python分割文件并分别保存
- Pythonの豆瓣相册下载脚本
- 批量下载豆瓣相册图片python脚本
- 通过网络Url下载图片并下载到本地相册
- 用python抓包下载百度图片
- python 登录并爬取淘宝信息
- HttpHelper类登录淘宝联盟并下载淘宝客订单xls c#模拟淘宝登录
- 获取网络图片并下载到本地相册
- Android下载网络图片并保存在本地相册
- Python爬虫小实践:下载妹子图www.mzitu.com网站上所有的妹子图片,并按相册名字建立文件夹分好文件名
- python自动下载人人所有好友的相册
- 安卓SharedPreferences
- 获取日期拼接格式
- Oracle之cmd 常用命令
- tomcat 配置文件 请求很大时去掉限制
- JAVA字符串格式化-String.format()的使用
- python 抓去淘宝相册并分别下载
- 使用C#的FTP类时,连接不上FTP服务器
- 64位系统下,numpy 和 Python 安装
- c3p0的jar包加载正常,报错说找不到ComboPooledDataSource
- table边框合并
- 【Python 命令行参数解析: optparse 模块】
- hdu 6090(一)
- java正则表达
- python 抓取音乐