首页 » 技术分享 » 爬取淘女郎网站图片

爬取淘女郎网站图片

 
#!/user/bin/env python
# _*_ coding:utf-8 _*_
import requests,re,json
def getGirlInfo():
    #post请求一定会有参数
    data={
        'q':'',
        'viewFlag':'A',
        'sortType': 'default',
        'searchStyle':'',
        'searchRegion':'city:',
        'searchFansNum':'',
        'currentPage': '1',
         'pageSize': '100',
    }
    response=requests.post("https://mm.taobao.com/tstar/search/tstar_model.do?_input_charset=utf-8",data=data)
    html=response.text;
    return json.loads(html)["data"]
#获取每个人的详细信息
def getGrilInfoList():
    Nvs=[]
    info=getGirlInfo()["searchDOList"]#获取模特详细信息
    #print("%s  %s  %s  %s  %s  %s"%("城市","身高","真是姓名","点赞数","ID","体重"))
    for NvInfo in info:
        #print (NvInfo["city"],NvInfo["height"],NvInfo["realName"],NvInfo["totalFavorNum"],NvInfo["userId"],NvInfo["weight"],)
        NvInfo_ = {}
        NvInfo_["城市"]=NvInfo["city"];
        NvInfo_["身高"] = NvInfo["height"]+"CM";
        NvInfo_["真是姓名"] = NvInfo["realName"];
        NvInfo_["点赞数"] = NvInfo["totalFavorNum"];
        NvInfo_["用户ID"] = NvInfo["userId"];
        NvInfo_["体重"] = NvInfo["weight"]+"KG";
        Nvs.append(NvInfo_)
    return Nvs;
#获取每个人的相册id
def getNvImgList(id):
    #获取图片列表
    ImgListUrl="https://mm.taobao.com/self/album/open_album_list.htm?_charset=utf-8&user_id%20={}".format(id);
    print("每个人的相册ID"+ImgListUrl)
    response=requests.post(ImgListUrl)
    result=response.text;
    reg='<a class="mm-first" href="(.*?)" target="_blank">'
    NvImgList=re.findall(reg,result);#返回一个缩略图列表
    NvImgList=list(set(NvImgList))#去重
    #print("缩略图列表")
   # print(NvImgList)
    NvImgListId=[]
    for NvSuolvtu in NvImgList:
        #问号是正则表达式的敏感字符   要转译
        reg="//mm.taobao.com/self/album_photo.htm\?user_id={}&album_id=(.*?)&album_flag=0".format(id);
        a=re.findall(reg,NvSuolvtu)[0];
        NvImgListId.append(a)
    return NvImgListId

 #获取每个相册中的图片
def getNvImgListInfo(NvId,ImgId):
    response=requests.post(" http://mm.taobao.com/album/json/get_album_photo_list.htm?user_id={}&album_id={}".format(NvId,ImgId))
    #print("相册--%s"%("http://mm.taobao.com/album/json/get_album_photo_list.htm?user_id={}&album_id={}".format(NvId,ImgId)))
    reault=response.text;
    a=json.loads(reault)#将json转换成字典
    NvImgListInfo = [];  # 存放图片URL
    for i,imagUrl in enumerate(a["picList"]):
        #print("{}--{}".format(i,imagUrl["picUrl"][0:-14]))
        NvImgListInfo.append(imagUrl["picUrl"][:-14])
    return NvImgListInfo


for GrilInfo in getGrilInfoList():
    NvId=GrilInfo["用户ID"];
    #print("{}的图片".format(GrilInfo["真是姓名"]).center(100))
    for imgid in getNvImgList(GrilInfo["用户ID"]):
        for i in getNvImgListInfo(NvId,imgid):#获取每张图片的Url
            img_name=i[-45:].split("/")[-1]
            img=requests.get("http:"+i).content;#.content  以二进制打开一个文件
            with open(img_name.split('/')[-1],"wb")as fn:
                 fn.write(img)

转载自原文链接, 如需删除请联系管理员。

原文链接:爬取淘女郎网站图片,转载请注明来源!

0