彼岸网美女壁纸爬虫
"""地址: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) 链接:https://pan.baidu.com/s/1YAeLHwtzDqLSu5upeg2mNA
提取码:1esa
给大家分享一个已经爬完的RAR压缩包的文件。 本帖最后由 caac 于 2023-5-14 11:55 编辑
如有美女的图片分享示例更好,谢分享;www 谢谢分享! 不错不错哈 本帖最后由 winsphinx 于 2023-5-14 07:40 编辑
哈,楼主,我之前也弄了一个下载netbian后作为壁纸的程序,发上来请指正。
稍有不同的是,我用了中图。(楼主每页的是小图,点击后打开的页面是中图,当然真正的大图是要付费的了)
#!/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/text()')# 获取分栏页最大页数
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/ul/li'))
img = tree.xpath('//*[@id="main"]/div/ul/li[' + str(random.randint(1, max_img)) + "]/a/@href")# 随机获取图像元素
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')# 获取此图像地址
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 = 6and TileWallpaper = 0 make walpaper fitted
WallpaperStyle = 2and TileWallpaper = 0 make walpaper stretched
WallpaperStyle = 0and TileWallpaper = 0 make walpaper centered
WallpaperStyle = 0and TileWallpaper = 1 make walpaper tiled
"""
if __name__ == "__main__":
wallpaper = Wallpaper()
wallpaper.crawl().setup()
好坏好坏好坏的。 谢谢楼主,美女什么的我最喜欢了{:1_899:} winsphinx 发表于 2023-5-14 07:34
哈,楼主,我之前也弄了一个下载netbian后作为壁纸的程序,发上来请指正。
稍有不同的是,我用了中图。( ...
你好,你这个下载的是 https://pic.netbian.com 的,我那个下载的是http://www.netbian.com/,这两个网页是不一样的 感谢大佬分享,学到了. 感觉还不错诶..嘿嘿