Python获取手机4K壁纸,一个入门练手的案例

前言

一. 数据来源分析

  1. 明确需求, 我们采集网上什么数据内容, 在什么地方
  • 分析我们想要高清原图在什么地方有
  1. 浏览器自带工具: 开发者工具 F12
  • 鼠标右键点击 插件 选择 network 刷新网页
  • 点击选择 Img 可以直接找到图片地址
  • 通过搜索分析, 可以知道, 我们想要图片原图url 就在 图片详情页网页源代码里面

二. 代码大概实现步骤

  1. 发送请求, 模拟浏览器对于 图片目录页面 发送请求
  2. 获取数据, 获取服务器返回响应数据
  3. 解析数据, 提取我们想要数据内容
  4. 发送请求, 模拟浏览器对于 图片详情页url 发送请求
  5. 获取数据, 获取服务器返回响应数据
  6. 解析数据, 提取我们想要数据内容
  7. 保存数据, 把图片保存文本文件夹

导入模块

import requests
import re

请求数据

url = f'https://m.bcoderss.com/tag/漫画/page/1/'
# 模拟浏览器 --> headers 请求头
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)

<Response [200]> 表示请求成功

解析数据, 提取我们想要数据内容

提取详情页url地址

img_info = re.findall('<li><a target="_blank" href="(.*?)" alt="(.*?)" title=".*?">', response.text)

for循环遍历 把列表里面元素 一个一个提取出来

for img, title in img_info:
    html_data = requests.get(url=img, headers=headers).text
    # 提取原图url地址
    img_url = re.findall('<img alt=".*?" title=".*?" src="(.*?)">', html_data)[0]

获取二进制数据

img_content = requests.get(url=img_url).content

替换特殊字符

img_title = title + img_url.split('/')[-1]
img_title = re.sub(r'[\/:*?:<>|]', '_', img_title)

保存数据

with opythonpen('img漫画\\' + img_title, mode='wb') as f:
    f.write(img_content)
print(img_url, img_title)

运行代码


posted @ 2022-10-24 19:12  松鼠爱吃饼干  阅读(237)  评论(0编辑  收藏  举报
Title