hare32768 发表于 2023-10-29 17:56

一个超简单的抱枕图库爬取

一些可以略过的话
最近突然想买个抱枕,在淘宝上翻了翻,您猜怎么找,居然碰到了一个抱枕图库,这不整的我手痒了不是,于是就有了这篇文章。

# 一个超简单的抱枕图库爬取

## 效果图

![目录列表](https://picshack.net/ib/lhg4av2VqD.png)

![文件总大小](https://picshack.net/ib/IibBKz3YH6.png)

## 第一步:获取动漫集列表
- POST接口:http://101.132.172.60/api/anim/all

![动漫集列表](https://picshack.net/ib/oxVtXosMIo.png)

- 返回数据:

!(https://picshack.net/ib/c96Rq56umj.png)

- 说明:返回中的动漫集ID用于后续请求动漫集内容

- python示例:

```python
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.69"}
def all_li():
    url = 'http://101.132.172.60/api/anim/all'
    res = requests.post(url, headers=headers)
    return [(i['name'], i['id']) for i in res.json()['data']]
```

## 第二步:动漫集内容获取
- POST接口:http://101.132.172.60/api/anim/{动漫集ID}/page
- 请求载荷:
| 参数名 | 说明 | 示例 |
| :---: | :---: | :---: |
| page | 请求页 | 1 |
| size | 最大数据量(默认50) | 50 |

![动漫集内容](https://picshack.net/ib/nEZqrEFtL6.png)

- 返回数据:

!(https://picshack.net/ib/GLLtLQRm8l.png)

- 说明:返回中的图片ID用于后续图片下载

```python
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.69"}
def in_li(title_id):
    url = f'http://101.132.172.60/api/anim/{title_id}/page'
    n = 1
    result = []
    while True:
      data = {
            'page': n,
            'size': 50
      }
      res = requests.post(url, json=data, headers=headers)
      li = [(i['number'], i['id']) for i in res.json()['data']]
      if not li: break
      result.extend(li)
      n += 1
    return result
```

## 第三步:图片下载
- GET接口:http://101.132.172.60/api/imgs/{图片ID}/regular.jpg

```python
def image_save(name, _id):
    url = f'http://101.132.172.60/api/imgs/{_id}/regular.jpg'
    res = requests.get(url, headers=headers, timeout=10)
    with open(name, 'wb') as f:
      f.write(res.content)
```

## 注意事项
- 目录/文件保存时,注意符合系统命名方式(可恶的windows命名规范
- 该服务器貌似比较弱,并发10请求仍存在断包的情况

## 完整代码见附件(解压码:52pojie)

xiaoxiaoyiyu 发表于 2024-1-18 10:37

hare32768 发表于 2023-10-31 16:03

nanhaiyu007 发表于 2023-10-31 09:45
没有报错;
我调试了以下,查看保存路径是这个,但没看太懂如下路径在哪



程序创建H3目录,并切换工作目录到H3中(所有路径皆为相对路径)
程序采用了线程池方式,你看到的这个是主线程的任务提交,实际执行在线程池中,中断程序有可能导致该任务未被调度,实际判断可以观察日志输出是否显示该图片保存成功。

as0412108 发表于 2023-10-29 22:30

感谢分享,谢谢

HuAI_Wei 发表于 2023-10-30 00:52

感谢大佬分享,谢谢

huangjinjia08 发表于 2023-10-30 08:17

这个6啊哈哈哈

abCdeU 发表于 2023-10-30 08:30

这……抱枕也高科技了{:1_904:}

lingwushexi 发表于 2023-10-30 08:49

感谢分享

currentdirect 发表于 2023-10-30 10:01

nsfw警告

少年郎向前望 发表于 2023-10-30 10:16

感谢楼主分享 多谢了

shadmmd 发表于 2023-10-30 10:42

用的logger是哪个版本的,pip install logger 后还是提示没有loguru

从来不想 发表于 2023-10-30 10:49

谢谢楼主,我会好好批判的
页: [1] 2 3
查看完整版本: 一个超简单的抱枕图库爬取