吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6352|回复: 67
收起左侧

[Python 原创] 彼岸网美女壁纸爬虫

  [复制链接]
清欢吖 发表于 2023-5-13 21:48
[Python] 纯文本查看 复制代码
"""
地址:http://www.netbian.com/
可以根据网页分类进行修改
请先自行在目录内创建 美女图片 文件夹
@清欢吖

"""
#  导入 requests 和 etree 模块
import requests
from lxml import etree

#  循环下载75页的图片
for i in range(75):
    #  第一页的地址和后面页的地址不同,需要分别处理
    if i==0:
        url = "http://www.netbian.com/meinv/index.htm"
        i +=1
    else:
        url = 'http://www.netbian.com/meinv/index_' + str(i + 1) + '.htm'

    #  设置协议头
    headesp = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.35'}

    #  发送get请求并获取响应且设置编码
    resp = requests.get(url,headers=headesp)
    resp.encoding = resp.apparent_encoding

    #  将响应内容解析为etree对象
    xp = etree.HTML(resp.text)

    #  获取每页中的图片详情页链接
    img_url = xp.xpath("/html/body/div[@class='wrap clearfix']/div[@id='main']/div[@class='list']/ul/li/a/@href")
    for n in img_url:
        #  根据图片详情页链接再次发送get请求并获取图片地址和名称
        resp = requests.get('http://www.netbian.com' + n)
        resp.encoding = resp.apparent_encoding
        xp = etree.HTML(resp.text)
        img_urls = xp.xpath('//div[@class="pic"]/p/a/img/@src')
        img_name = xp.xpath('//div[@class="pic"]/p/a/img/@alt')

        #循环下载每个图片
        for u, n in zip(img_urls, img_name):
            print(f'图片名:{n} 地址:{u}')
            img_resp = requests.get(u)
            with open(f'./美女图片/{n}.jpg', 'wb') as f:
                f.write(img_resp.content)

免费评分

参与人数 8吾爱币 +6 热心值 +8 收起 理由
rootcup + 1 + 1 谢谢@Thanks!
kkni + 1 我很赞同!
angxi6 + 1 谢谢@Thanks!
tiankong110 + 2 + 1 热心回复!
Bob5230 + 1 + 1 我很赞同!
LIGEGEG + 1 我很赞同!
qinni8513 + 1 + 1 谢谢@Thanks!
cheungg + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

大白baymax 发表于 2023-5-14 07:24
链接:https://pan.baidu.com/s/1YAeLHwtzDqLSu5upeg2mNA
提取码:1esa
给大家分享一个已经爬完的RAR压缩包的文件。

免费评分

参与人数 8吾爱币 +8 热心值 +8 收起 理由
ranlywu + 1 + 1 谢谢@Thanks!
yaoyanjie521 + 1 + 1 我很赞同!
superip + 1 + 1 我很赞同!
信息安全 + 1 + 1 链接不行了哎,可以再来一份嘛😂
tiankong110 + 1 + 1 谢谢@Thanks!
flfq + 1 + 1 我很赞同!
ppszxc + 1 + 1 我很赞同!
一条小渣团OvO + 1 + 1 谢谢@Thanks!

查看全部评分

caac 发表于 2023-5-14 11:54
本帖最后由 caac 于 2023-5-14 11:55 编辑

如有美女的图片分享示例更好,谢分享
思念说给风听 发表于 2023-5-14 07:12
qinni8513 发表于 2023-5-14 07:19
不错不错哈
winsphinx 发表于 2023-5-14 07:34
本帖最后由 winsphinx 于 2023-5-14 07:40 编辑

哈,楼主,我之前也弄了一个下载netbian后作为壁纸的程序,发上来请指正。
稍有不同的是,我用了中图。(楼主每页的是小图,点击后打开的页面是中图,当然真正的大图是要付费的了)

[Python] 纯文本查看 复制代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import random
import tempfile

import requests
import win32api
import win32con
import win32gui
from lxml import etree
from PIL import Image


class Wallpaper:
    def __init__(self):
        self.image = os.path.join(tempfile.gettempdir(), "wallpaper.jpg")

    def crawl(self):
        base_url = "https://pic.netbian.com"  # 基础页
        page_url = base_url + "/4kmeinv"  # 分栏页
        headers = {
            "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
        }
        page = requests.get(url=page_url, headers=headers)
        tree = etree.HTML(page.text)
        max_page = tree.xpath('//div[@class="page"]/a[last() - 1]/text()')[0]  # 获取分栏页最大页数

        i = random.randint(1, int(max_page))  # 随机进入页面
        if i == 1:
            page_url = page_url
        else:
            page_url = page_url + "/index_" + str(i) + ".html"

        page = requests.get(url=page_url, headers=headers)  # 获取此页面元素列表
        tree = etree.HTML(page.text)
        max_img = len(tree.xpath('//*[@id="main"]/div[3]/ul/li'))
        img = tree.xpath('//*[@id="main"]/div[3]/ul/li[' + str(random.randint(1, max_img)) + "]/a/@href")[0]  # 随机获取图像元素

        new_url = base_url + img  # 跳转新图像页面
        new_page = requests.get(url=new_url, headers=headers)
        new_tree = etree.HTML(new_page.text)
        new_img = new_tree.xpath('//*[@id="img"]/img/@src')[0]  # 获取此图像地址

        image_url = base_url + new_img
        with open(self.image, "wb") as f:
            f.write(requests.get(image_url).content)
        return self

    def setup(self):
        keyex = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE)
        win32api.RegSetValueEx(keyex, "WallpaperStyle", 0, win32con.REG_SZ, "6")
        win32api.RegSetValueEx(keyex, "TileWallpaper", 0, win32con.REG_SZ, "0")
        win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, self.image, win32con.SPIF_SENDWININICHANGE)
        """
        WallpaperStyle = 10 and TileWallpaper = 0 make walpaper filled
        WallpaperStyle = 6  and TileWallpaper = 0 make walpaper fitted
        WallpaperStyle = 2  and TileWallpaper = 0 make walpaper stretched
        WallpaperStyle = 0  and TileWallpaper = 0 make walpaper centered
        WallpaperStyle = 0  and TileWallpaper = 1 make walpaper tiled
        """


if __name__ == "__main__":
    wallpaper = Wallpaper()
    wallpaper.crawl().setup()
空中的水 发表于 2023-5-14 08:00
好坏好坏好坏的。
2001gwx 发表于 2023-5-14 08:19
谢谢楼主,美女什么的我最喜欢了
 楼主| 清欢吖 发表于 2023-5-14 08:49
winsphinx 发表于 2023-5-14 07:34
哈,楼主,我之前也弄了一个下载netbian后作为壁纸的程序,发上来请指正。
稍有不同的是,我用了中图。( ...

你好,你这个下载的是 https://pic.netbian.com 的,我那个下载的是  http://www.netbian.com/,这两个网页是不一样的
wushengli 发表于 2023-5-14 09:07
感谢大佬分享,学到了.
不搭落俗笑忘书 发表于 2023-5-14 09:27
感觉还不错诶..嘿嘿
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 19:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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