python-爬取壁纸

代理池的,防止IP 被封

找到图片真实地址

现在看到的只是图片的预览地址 (previews)

1.检查:

2.鼠标变为箭头时查看网页源代码

关于怎样在源代码中找到图片的真实地址 ???

为什么在源代码界面 ctrl f 时候搜索的是 .png ???

首先图片地址是以 .jpg .png .jpeg 结尾

真实的图片地址是:

"contentUrl":"https://img3.wallspic.com/crops/0/5/0/6/7/176050/176050-old_paria_utah-paria-kanab-paria_river-towers_of_the_virgin-6319x4324.jpg"

用正则表达式匹配,只匹配高像素源图片

python 复制代码
(r'contentUrl":"(https://img\d.wallspic.com/crops/.*?)"', response)

如果是下面的内容,则会连缩略图也匹配到

python 复制代码
(r'"contentUrl":"(.*?)"',req)

最终代码:

python 复制代码
import requests
import re

url = 'https://wallspic.com/cn/album/ji_shu/for_desktop'

response = requests.get(url = url).text

contentUrl = re.findall(r'contentUrl":"(https://img\d.wallspic.com/crops/.*?)"', response)
j = 0
for i in contentUrl:
    j += 1
    Content = requests.get(url = i).content
    print(i)
    with open(f'Wallspic-{j}.jpg', mode = 'wb') as f:
        f.write(Content)
        print(f'[+] 壁纸{j}保存完成!')

最终结果是以.jpg的形式输出的

也可以以 .png的形式输出,.png是益处多多

Desktop Wallpapers - Download HD Desktop Backgrounds

https://wall.alphacoders.com/by_sub_category.php?id=170792&name=Black+Wallpapers

下载的慢可能是网速的原因,需要翻墙;或者给 idea 配置代理,

刷新电脑本地的线路,保持畅通。


python 复制代码
import requests
import re

def download_wallpapers(start_page, end_page):
    for page in range(start_page, end_page+1):
        url = f'https://wallspic.com/cn/album/dianying/popular?page={page}'
        response = requests.get(url=url).text
        contentUrl = re.findall(r'contentUrl":"(https://img\d.wallspic.com/crops/.*?)"', response)
        j = 0
        for i in contentUrl:
            j += 1
            Content = requests.get(url = i).content
            print(i)
            with open(f'p-{page}-{j}.jpg', mode = 'wb') as f:
                f.write(Content)
                print(f'[+] 壁纸{page}-{j}保存完成!')
# 下载第1页到第55页的壁纸
download_wallpapers(1, 55)

这段代码的作用是从wallspic.com网站下载电影壁纸,具体解读如下:

  1. 导入requests和re模块:

    import requests
    import re

  2. 定义一个函数download_wallpapers,该函数接受两个参数:起始页码start_page和结束页码end_page。

    def download_wallpapers(start_page, end_page):

  3. 使用for循环遍历从start_page到end_page的所有页码。

    for page in range(start_page, end_page+1):

  4. 构造每个页面的URL,并使用requests.get()方法获取页面的HTML文本。

    url = f'https://wallspic.com/cn/album/dianying/popular?page={page}'
    response = requests.get(url=url).text

  5. 使用正则表达式从HTML文本中提取出所有壁纸的下载链接。

    contentUrl = re.findall(r'contentUrl":"(https://img\d.wallspic.com/crops/.*?)"', response)

  6. 使用for循环遍历所有壁纸的下载链接,并使用requests.get()方法下载每个壁纸。

    for i in contentUrl:
    Content = requests.get(url = i).content

  7. 将每个壁纸保存到本地,并打印出保存完成的信息。

    with open(f'p-{page}-{j}.jpg', mode = 'wb') as f:
    f.write(Content)
    print(f'[+] 壁纸{page}-{j}保存完成!')

相关推荐
兵慌码乱6 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵7 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio11 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户03321266636712 小时前
使用 Python 从零创建 Word 文档
python
Csvn17 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽18 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175320 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei2 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python