吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5741|回复: 36
收起左侧

[Python 转载] 使用python爬高清壁纸,附带壁纸的说明信息

[复制链接]
fxzdsb 发表于 2018-3-16 15:50
代码在此

[Python] 纯文本查看 复制代码
from requests_html import HTMLSession
import requests
import os

# 需要python3.6 貌似requests-html需要3.6

session = HTMLSession()
WORKDIR = 'D:\\bing_wallpaper'


def download(one_pic_url):
    p = session.get(one_pic_url)
    p.html.encoding = 'utf-8'
    # 图片标题 作者
    p_title = p.html.find('div.description', first=True).find('p.title', first=True).text
    # 图片副标题 说明
    p_sub = p.html.find('div.description', first=True).find('p.sub', first=True).text
    # 图片下载地址
    p_download_url = base_url + list(p.html.find('div.options', first=True).find('a.download')[0].links)[0]
    print("开始下载 {} ..".format(p_title))
    # 标题里包含 "/" 导致os.mkdir 报错 暂时还不知道咋解决 所以暂时替换成空格了
    pic_dir = "{}\\{}".format(WORKDIR, p_title.replace("/"," "))
    if not os.path.exists(pic_dir):
        os.mkdir(pic_dir)
    readme = "{}\\readme.txt".format(pic_dir)
    with open(readme, 'a+') as f:
        f.write(p_sub)
    pic = requests.get(p_download_url, stream=True)
    pic_file = "{}\\pic.jpg".format(pic_dir)
    if pic.status_code == 200:
        with open(pic_file, 'wb') as p:
            p.write(pic.content)
            print("完成下载 {}".format(p_title))


if __name__ == '__main__':
    if not os.path.exists(WORKDIR):
        os.mkdir(WORKDIR)
    base_url = "https://bing.ioliu.cn"
    sum = 2
    for num in range(1, sum):
        if num:
            url = "{0}/?p={1}".format(base_url, num)
            r = session.get(url)
            r.html.encoding = 'utf-8'
            # 获取当前页面下所有图片的连接
            pic_lst = r.html.find('a.mark')
            for pic_url in pic_lst:
                pic_uri = list(pic_url.links)[0]
                # 组合出完整的图片下载地址
                one_pic_url = "{0}{1}".format(base_url,pic_uri)
                download(one_pic_url)



效果图也上几张

运行

运行


下载之后的目录

下载之后的目录


图片和描述信息

图片和描述信息


免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
cOldpure + 1 + 1 谢谢@Thanks!
雨过不留尘 + 1 + 1 用心讨论,共获提升!
nive + 1 + 1 热心回复!
servicelabs + 1 + 1 谢谢@Thanks!
夏橙M兮 + 1 + 1 谢谢@Thanks!

查看全部评分

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

xiaoyumyy 发表于 2018-3-16 21:27
夏橙M兮 发表于 2018-3-16 21:20
楼主,运行失败了,求分析。

python目录下运行下 pip install requests_html

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
夏橙M兮 + 1 + 1 我很赞同!

查看全部评分

技术萌新 发表于 2018-3-16 16:29
stay1988 发表于 2018-3-16 16:06
peterq521 发表于 2018-3-16 16:07
谢谢楼主 传统壁纸真有点看腻了
zdnyp 发表于 2018-3-16 16:11
# 标题里包含 "/" 导致os.mkdir 报错 暂时还不知道咋解决 所以暂时替换成空格了
在windows中,文件名是不能包含斜杠和反斜杠的,所以会报错,把斜杠替换成非“ / \ : ? “ < > | ”都行,双引号里的都不能用在文件名里。
duandaxei 发表于 2018-3-16 16:15
666学习下 多谢楼主了哈
 楼主| fxzdsb 发表于 2018-3-16 16:16
zdnyp 发表于 2018-3-16 16:11
# 标题里包含 "/" 导致os.mkdir 报错 暂时还不知道咋解决 所以暂时替换成空格了
在windows中,文件名是不 ...

嗯 我理解了 因为系统的路径就是类似 c:\123\abc 所以如果目录名包含 /或者\ 会被当成是单独的目录
ABC12345 发表于 2018-3-16 16:18
强大的python~~
zdnyp 发表于 2018-3-16 16:20
fxzdsb 发表于 2018-3-16 16:16
嗯 我理解了 因为系统的路径就是类似 c:\123\abc 所以如果目录名包含 /或者\ 会被当成是单独的目录

我也在学Python,scrapy
february 发表于 2018-3-16 16:24
感谢楼主分享源码,学习了,正好需要,也感谢3楼@zdnyp 的提醒,学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-16 01:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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