吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2747|回复: 18
收起左侧

[讨论] 都在爬美女图片 我也爬爬练手 有个师兄用正则爬的我用xpath爬交流交流

[复制链接]
lihu5841314 发表于 2021-6-12 22:08
本帖最后由 lihu5841314 于 2021-6-13 10:04 编辑

[Asm] 纯文本查看 复制代码
import requests
from multiprocessing.dummy import Pool
import os
from lxml import etree

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
    "Referer":"https://www.vmgirls.com/"
}
if not  os.path.exists("./mv_img"):
        os.mkdir("./mv_img")
def resp(url):
    rep = requests.get(url=url,headers=headers)
    rep.encoding = rep.apparent_encoding
    tree  =  etree.HTML(rep.text)
    return tree

def img_detail(tree):
    lis = tree.xpath('//div[@class="container"]/div/div')
    # print(len(lis)) 13条数据  不知道怎么只能看到10条  以至于下面for循环报越界错误
    urls = []
    for li  in lis:
        try:
           next_url = 'https://www.vmgirls.com' + li.xpath('.//a[@class="media-content"]/@href')[0]
           title = li.xpath('.//a[@class="media-content"]/@title')[0]
           urls.append(next_url)
           # print(next_url)
        except:
            print('第{0}条数据处理失败'.format(li))
    # print(urls)
    return urls


def  img_dow(url):
       tree = resp(url)
       a_lis = tree.xpath('//div[@class="nc-light-gallery"]/a')
       i=0
       for a in a_lis:
            img_down_url ='https:'+ a.xpath('./@href')[0]  # url 中混合了无用的url  暂时用try  except处理  有好方法留言
            img_name =a.xpath('./@title')[0]
            try:
                i += 1  #不加个序号  图片会重名
                path = "./mv_img/" + img_name+ str(i) +".webp"  #没有安装处理图片的库 暂不处理
                rep1 = requests.get(url=img_down_url, headers=headers).content
                with open(path, "wb")  as pf:
                     print(img_name + str(i),"图片正在下载")
                     pf.write(rep1)
                     print(img_name + str(i), "图片下载完成")

            except:
                print('第{0}条数据处理失败'.format(url))


if __name__ == '__main__':
    pool = Pool(4)
    # 开始页
    dic ={
    "小姐姐":"beauty",
    "少女情怀":"bilitis" ,
    "轻私房":"urllittlesex",
    }
    print("请选择你喜欢的风格(小姐姐,少女情怀,轻私房)")
    fen = input("请输入你喜欢的风格:")
    fenge =dic[fen]
    url = f'https://www.vmgirls.com/special/{fenge}/'
    tree = resp(url)
    urls = img_detail(tree)
    img = pool.map(img_dow,urls)
    pool.close()
    pool.join()
[Asm] 纯文本查看 复制代码
import requests
from multiprocessing.dummy import Pool
import os
from lxml import etree

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
    "Referer":"https://www.vmgirls.com/"
}
if not  os.path.exists("./mv_img"):
    os.mkdir("./mv_img")
def resp(url):
    rep = requests.get(url=url,headers=headers)
    rep.encoding = rep.apparent_encoding
    tree  =  etree.HTML(rep.text)
    return tree

def img_detail(tree):
    lis = tree.xpath('//div[@class="container"]/div/div')
    # print(len(lis)) 13条数据  不知道怎么只能看到10条  以至于下面for循环报越界错误
    urls = []
    for li  in lis:
        try:
           next_url = 'https://www.vmgirls.com' + li.xpath('.//a[@class="media-content"]/@href')[0]
           title = li.xpath('.//a[@class="media-content"]/@title')[0]
           urls.append(next_url)
           # print(next_url)
        except:
            print('第{0}条数据处理失败'.format(li))
    # print(urls)
    return urls


def  img_dow(url):
       tree = resp(url)
       a_lis = tree.xpath('//div[@class="nc-light-gallery"]/a')
       for a in a_lis:

            img_down_url ='https:'+ a.xpath('./@href')[0]  # url 中混合了无用的url  暂时用try  except处理  有好方法留言
            img_name =a.xpath('./@title')[0]
            try:  
                path = "./mv_img/" + img_name+ ".webp"  #没有安装处理图片的库 暂不处理
                rep1 = requests.get(url=img_down_url, headers=headers).content
                with open(path, "wb")  as pf:
                     print(img_name, "图片正在下载")
                     pf.write(rep1)
                     print(img_name, "图片下载完成")
            except:
                print('第{0}条数据处理失败'.format(url))


if __name__ == '__main__':
    pool = Pool(4)
    # 开始页
    dic ={
    "小姐姐":"beauty",
    "少女情怀":"bilitis" ,
    "轻私房":"urllittlesex",
    }
    print("请选择你喜欢的风格(小姐姐,少女情怀,轻私房)")
    fen = input("请输入你喜欢的风格:")
    fenge =dic[fen]
    url = f'https://www.vmgirls.com/special/{fenge}/'
    tree = resp(url)
    urls = img_detail(tree)
    img = pool.map(img_dow,urls)
    pool.close()
    pool.join()

免费评分

参与人数 1吾爱币 +1 收起 理由
lgc81034 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cptw 发表于 2021-6-12 22:21
不太懂呢
 楼主| lihu5841314 发表于 2021-6-12 22:31

你拿来跑一遍就知道了  图片可以爬下来  我只是找不到消失的几个标签  
 楼主| lihu5841314 发表于 2021-6-12 22:33
探玄珠 发表于 2021-6-12 23:34
支持,网站不错
jiuyao 发表于 2021-6-13 00:35
网站不错
cn119 发表于 2021-6-13 00:50
老哥,这东西咋用?
aimlhui 发表于 2021-6-13 01:07
啥意思……我都没看明白……
CCQc 发表于 2021-6-13 07:40
都是具体略过,直接看小姐姐网址的主……嘿嘿。
lanlanmao 发表于 2021-6-13 07:56
希望楼主步骤说具体些,让我等小白学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表