吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8739|回复: 32
收起左侧

[Python 转载] 【多线程】Python爬虫爬取2K小姐姐美女模特写真图,大家一起学习进步

   关闭 [复制链接]
szsnk144864 发表于 2022-8-26 23:05
本帖最后由 szsnk144864 于 2022-8-26 23:12 编辑

目标网站:https://www.9eip.com/acheng/bizhi/                           代码看置顶哦

小白代码,大佬勿笑,,    大家一起学习进步


感谢 @话痨司机啊  分享的代码,让我学到了很多

由于网站采用了不知道啥办法,我的能力有限没办法获取网页源码,,所以用了另一种方法获取下载链接。


还有由于能力有限,让我没办法获取到每个分类(分类的ID看下图,修改ID就可以切换分类了)的总页数和每张图的名字,就随意搞了一个名字,
希望有大佬可以指点指点

如线程太高,频繁下载等种种情况,对网站产生的后果,由你自己负责哦!代码主要是大家一起来学习的,希望大家可以温柔一点哦


QQ截图20220826230310.jpg







免费评分

参与人数 5吾爱币 +4 热心值 +3 收起 理由
zhaoqingdz + 1 谢谢@Thanks!
Natu + 1 + 1 谢谢@Thanks!
zhangzsf + 1 + 1 谢谢@Thanks!
lgc81034 + 1 谢谢@Thanks!
xiaomingpojie + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| szsnk144864 发表于 2022-8-26 23:08
[Python] 纯文本查看 复制代码
'''本代码仅供学习参考,如线程数太高,频繁下载等种种情况,对网站产生的后果,由你自己自己负责哦'''

import os, re, requests
import time
from concurrent.futures import ThreadPoolExecutor

# 线程数,不要太高,对网站温柔一点
NBi = 5

headers = {
    # 'Referer': 'https://www.9eip.com/acheng/bizhi/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36'
}


def start_requests(fenlei, page):
    # feilei  是选择需要下载类目的ID(我是这么理解的),page 是页数,通过从每一页里提取图片名
    url = f'https://www.9eip.com/acheng/bizhi/api.php?cid={fenlei}&start=0&count={page + 1}'
    response = requests.get(url=url, headers=headers)
    # 获取图片下载名和后缀
    get_img_id = re.findall((r'"url":.*?85.*?/(.*?)","'), (response.text), re.I)[page]

    # 由于网页代码里没有看到1080的,所以强行加了一个,如果需要1920 X 1080 的朋友,可以把这个注释打开,下面的注释掉
    # more_large_img = 'http://p3.qhimg.com/bdm/1920_1080_85/' + get_img_id

    # 获取更大尺寸
    more_large_img = 'http://p0.qhimg.com/bdr/__85/' + get_img_id
    response.close()
    return get_img_id, more_large_img


def save_img(img_folder_name, page):
    # 在d 盘创建文件夹,可以修改此处,自定义存储位置
    path = 'd://desktop/爬虫图库/' + img_folder_name + '/'
    if not os.path.exists(path):
        os.mkdir(path)
    # 我的立即就是分配名称和名字,,  6 是这个类目的 id(我是这么理解的)
    name, url = start_requests(6, page)
    # 图片存储路径
    img_save_path = path + name
    # 获取图片下载地址
    res = requests.get(url=url, headers=headers).content
    with open(img_save_path, 'wb') as f:  # 存储图片
        f.write(res)  # 写入图片
        print(name + '    >>>>>>>>>>>>>>>>>>>>  下载完成')
    f.close()


def main():
    with ThreadPoolExecutor(max_workers=NBi) as executor:
        #  由于能力有限,不知道应该怎么获取总页数,所以就自己弄了一个页数出来,,,,
        for ss in range(0, 220):
            print(f'............正在下载第{ss + 1}页............')
            executor.submit(save_img, '美女模特', ss)
            time.sleep(0.5)  # 给服务器休息休息,


if __name__ == '__main__':
    main()

免费评分

参与人数 1吾爱币 +5 热心值 +1 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

话痨司机啊 发表于 2022-8-27 00:35
[Python] 纯文本查看 复制代码
import requests

api_url = lambda cid,start: f'https://www.9eip.com/acheng/bizhi/api.php?cid={cid}&start={start}&count=30'
cid = '360new' # 类型
start = '0' # 每页+30
data = requests.get(api_url(cid,start)).json()
u = [{url.get('url').split('/')[-1].split('.')[0]:url.get('url')} for url in data.get('data')]
print(u)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
苏紫方璇 + 1 + 1 用心讨论,共获提升!

查看全部评分

Clarkchaoren 发表于 2022-8-27 08:26
WD丶活着 发表于 2022-8-26 23:49
流量密码??
Patches 发表于 2022-8-26 23:17
谢谢楼主分享源码     我爬点壁纸
 楼主| szsnk144864 发表于 2022-8-26 23:17
Patches 发表于 2022-8-26 23:17
谢谢楼主分享源码     我爬点壁纸

大家一起学习进步
caac 发表于 2022-8-26 23:26
Python爬虫能获取到优质资源,谢分享
zlf2020999 发表于 2022-8-26 23:53
编码怎么样呀?小白需要一个完整的呀,谢谢!
icodeme 发表于 2022-8-27 00:21
可以可以
Supermexyh 发表于 2022-8-27 07:31

我也觉得这样,一堆人都在发类似的东西。。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 06:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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