zhuyh 发表于 2022-2-19 15:19

吾爱趴了很久,结合网上大神们的东西,小白一个鼓捣了一个美篇的图片下载

本帖最后由 zhuyh 于 2022-2-21 13:45 编辑

打开美篇登录在 https://www.meipian.cn/hot页面点击任意图片复制地址栏链接复制例如https://www.meipian.cn/3wu0tk0c黏贴程序运行窗口 惊喜等着你 查看D:\\mypic\test\
import urllib.request
import re
import os
import urllib

# 请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 '
                  'Safari/537.36 '
}

print('为了保证你的访问正常,不要恶意下载图片,防止网站封IP,够用够看就好~_~。')
print('已设置不同网站不同主题下载创建不同文件夹,不覆盖文件,下完及时查看~_~。')

print('-----------------------------------------------------------')
input_content = input('请输入要下载的网页地址:')

def get_html(url):
    page = urllib.request.urlopen(url)
    html_a = page.read()
    return html_a.decode('utf-8')

url = input_content
req = urllib.request.Request(url)
try:
    resp = urllib.request.urlopen(req)
    data = resp.read().decode('utf-8')
    start = data.find('<title>')
    end = data.find('</title>')
    t = data
    print(t)
except:
    print('Error')

def get_img(html):
    reg = r'https://[^\s]*?\.jpg'
    imgre = re.compile(reg)# 转换成一个正则对象
    imglist = imgre.findall(html)# 表示在整个网页过滤出所有图片的地址,放在imgList中
    x = 0      # 声明一个变量赋值
    path = 'D:\\mypic\\test\\' + t + "/" # 设置图片的保存地址
    if not os.path.isdir(path):
      os.makedirs(path)# 判断没有此路径则创建
    paths = path + '\\'# 保存在test路径下
    for imgurl in imglist:
      urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x))# 打开imgList,下载图片到本地
      x = x + 1
      print("正在下载第" + str(x) + "张高清图片,请稍候...结果查看D:\mypic/test/" + str(t) + "/图片,再次申明不要恶意下载")
    return imglist


html_b = get_html(input_content)# 获取该网页的详细信息input_content
print(get_img(html_b))# 从网页源代码中分析下载保存图片

2022.2.21应大家要求增加自定义文件路径创建,查看路径随定义路径,具体看代码:

import urllib.request
import re
import os
import urllib

# 请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15'
}

input_content = ''# 需要搜索的内容
t = ''# 需要搜索的内容
print('为了保证你的访问正常,不要恶意下载图片,防止网站封IP,够用够看就好~_~。')
print('已设置不同网站不同主题下载创建不同文件夹,不覆盖文件,下完及时查看~_~。')
print('增加自定义文件路径例如:C:\\Users\\Administrator\\ 中最后斜杠一定要带上,否则在上级目录创建文件')
print('如果路径输入任意字符不带盘符,下载后会保存在python执行文件根目录下具体为:任意字符+文件名的文件内')
print('............你好,我好,大家好,才是真的好,伸出你友善的小手,免费评分走一波!.............')
#basepath = os.getcwd() # 如果你想在当前路径下创建文件
basepath = r"" #如果你想在特定自定义路径下创建文件
print()
d1 = input("请输入你要自定义保存的路径例如(C:\\Users\\Administrator\\Desktop\):" + basepath)
full1 = os.path.join(basepath, d1)
#os.makedirs(full1, exist_ok=true)
print("保存文件路径设置成功,你自定义的文件路径为:" + d1)
#d2 = input("d2:") #子文件夹自动创建
#full2 = os.path.join(d1, d2)#子文件夹自动创建
#os.makedirs(full2, exist_ok=True)#子文件夹自动创建

input_content = input('请输入要下载的网页地址(例如https://www.meipian.cn/3wu0tk0c):')

def get_html(url):
    page = urllib.request.urlopen(url)
    html_a = page.read()
    return html_a.decode('utf-8')

url = input_content
req = urllib.request.Request(url)
try:
    resp = urllib.request.urlopen(req)
    data = resp.read().decode('utf-8')
    start = data.find('<title>')
    end = data.find('</title>')
    t = data
    print("你要下载的文件为" + t)
except:
    print('Error')

def get_img(html):
    reg = r'https://[^\s]*?\.jpg'
    imgre = re.compile(reg)# 转换成一个正则对象
    imglist = imgre.findall(html)# 表示在整个网页过滤出所有图片的地址,放在imgList中
    x = 0      # 声明一个变量赋值
    path = d1 + t + "\\" # 设置图片的保存地址
    if not os.path.isdir(path):
      os.makedirs(path)# 判断没有此路径则创建
    paths = path + '\\'# 保存在test路径下
    for imgurl in imglist:
      urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x))# 打开imgList,下载图片到本地
      x = x + 1
      print("正在下载第" + str(x) + "张高清图片,请稍候...结果查看" + str(path) + str(x) + ".jpg,再次申明不要恶意下载")
    return imglist


html_b = get_html(input_content)# 获取该网页的详细信息input_content
print(get_img(html_b))# 从网页源代码中分析下载保存图片

w-taox 发表于 2022-3-24 09:11

大佬请教一下有几个网址进去运行程序有出错,例如 https://www.meipian7.cn/28pi30sb

Traceback (most recent call last):
File "D:\Program Files\美篇下载\meipianxz2.py", line 68, in <module>
    print(get_img(html_b))# 从网页源代码中分析下载保存图片
File "D:\Program Files\美篇下载\meipianxz2.py", line 61, in get_img
    urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x))# 打开imgList,下载图片到本地
File "C:\Users\wtao\AppData\Local\Programs\Python\Python310\Lib\urllib\request.py", line 241, in urlretrieve
    with contextlib.closing(urlopen(url, data)) as fp:
File "C:\Users\wtao\AppData\Local\Programs\Python\Python310\Lib\urllib\request.py", line 216, in urlopen
    return opener.open(url, data, timeout)
File "C:\Users\wtao\AppData\Local\Programs\Python\Python310\Lib\urllib\request.py", line 525, in open
    response = meth(req, response)
File "C:\Users\wtao\AppData\Local\Programs\Python\Python310\Lib\urllib\request.py", line 634, in http_response
    response = self.parent.error(
File "C:\Users\wtao\AppData\Local\Programs\Python\Python310\Lib\urllib\request.py", line 563, in error
    return self._call_chain(*args)
File "C:\Users\wtao\AppData\Local\Programs\Python\Python310\Lib\urllib\request.py", line 496, in _call_chain
    result = func(*args)
File "C:\Users\wtao\AppData\Local\Programs\Python\Python310\Lib\urllib\request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden


大佬可以帮忙看看是为什么嘛

zhuyh 发表于 2022-3-24 16:57

w-taox 发表于 2022-3-24 09:11
大佬请教一下有几个网址进去运行程序有出错,例如 https://www.meipian7.cn/28pi30sb

Traceback (most...

地址匹配换成这这个 reg = r'https://ss2.meipian.me/(.*?)","img_width"' 地址匹配换成这这个
urllib.request.urlretrieve(imgurl, 这个换成urllib.request.urlretrieve("https://ss2.meipian.me/"+imgurl

字母 发表于 2022-2-19 16:33

哦呀哦呀~ 小程序越来越多了 站里的~

z909022684 发表于 2022-2-19 16:49

学习学习

Fxhlt 发表于 2022-2-19 17:00

多交流 多交流

A天狼A 发表于 2022-2-19 17:28

努力学习的态度值得赞扬!加油!

zhuyh 发表于 2022-2-19 17:56

打包成exe上传了不了权限不足{:1_937:}「美篇.exe」https://www.aliyundrive.com/s/gxMaTCxmb41点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

gunxsword 发表于 2022-2-19 18:06

感谢分享脚本!

杰丽 发表于 2022-2-19 18:11

这是有什么功能

afti 发表于 2022-2-19 18:19

学习如何下载美篇

18259118093 发表于 2022-2-19 18:21

这个怎么用呢
页: [1] 2 3 4
查看完整版本: 吾爱趴了很久,结合网上大神们的东西,小白一个鼓捣了一个美篇的图片下载