博客
关于我
Python爬取高清桌面壁纸(附源码),直接运行即可
阅读量:630 次
发布时间:2019-03-14

本文共 1726 字,大约阅读时间需要 5 分钟。

前言

本文是一个实用的技术指南,旨在帮助开发人员快速了解如何从网页中抓取图片数据。代码和图片均来源于网络,仅供学习和交流使用,禁止商业用途。如有任何问题,请联系我们进行处理。


一、导入工具

import requests
from pyquery import PyQuery as pq
import time

二、请求、解析网页数据,保存数据

proxies = {
'https': '218.75.69.50:39590'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
def start_request(url):
response = requests.get(url, headers=headers, proxies=proxies)
response.encoding = 'GBK'
return response.text
def parse(text, page_num):
doc = pq(text)
images = doc('div.list ul li img').items()
current_image_num = 1
for image in images:
img_url = image.attr('src')
image_content = requests.get(img_url, headers=headers, proxies=proxies).content
save_path = os.path.dirname(os.path.abspath(__file__)) + '\\image\\' + f'imgs\\{page_num}\\{current_image_num}.jpg'
os.makedirs(os.path.dirname(save_path), exist_ok=True)
with open(save_path, 'wb') as f:
f.write(image_content)
print(f"正在下载第{page_num}页第{current_image_num}张图片...")
current_image_num += 1
print(f"写入完成,共下载了{current_image_num-1}张图片。")
def main():
base_url = 'http://www.netbian.com'
html = start_request(base_url)
parse(html, 1)
# 爬取指定范围的页面
for page in range(2, 100):
url = f'{base_url}/index_{page}.htm'
html = start_request(url)
parse(html, page)
if __name__ == "__main__":
main()

三、技术说明

  • 工具导入

    使用了 requests 库来抓取网页内容,PyQuery 集成了一些命令行提取功能,非常适合网页解析任务。

  • 请求设置

    设置了 User-Agent 字符串,让请求看起来更自然,避免被反爬机制拦截。

  • 页面编码

    网页默认使用 gbk 字符编码,本地显示可能会出现乱码,需要手动指定编码格式。

  • 图片下载与存储

    读取图片链接后,将图片内容下载并保存到指定目录中,支持多页抓取和分页存储。

  • 转载地址:http://etioz.baihongyu.com/

    你可能感兴趣的文章
    NFS的安装以及windows/linux挂载linux网络文件系统NFS
    查看>>
    NFS的常用挂载参数
    查看>>
    NFS网络文件系统
    查看>>
    nft文件传输_利用remoting实现文件传输-.NET教程,远程及网络应用
    查看>>
    NFV商用可行新华三vBRAS方案实践验证
    查看>>
    ng build --aot --prod生成文件报错
    查看>>
    ng 指令的自定义、使用
    查看>>
    nghttp3使用指南
    查看>>
    Nginx
    查看>>
    nginx + etcd 动态负载均衡实践(三)—— 基于nginx-upsync-module实现
    查看>>
    nginx + etcd 动态负载均衡实践(二)—— 组件安装
    查看>>
    nginx + etcd 动态负载均衡实践(四)—— 基于confd实现
    查看>>
    Nginx + Spring Boot 实现负载均衡
    查看>>
    Nginx + uWSGI + Flask + Vhost
    查看>>
    Nginx - Header详解
    查看>>
    Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)
    查看>>
    nginx 1.24.0 安装nginx最新稳定版
    查看>>
    nginx 301 永久重定向
    查看>>
    nginx css,js合并插件,淘宝nginx合并js,css插件
    查看>>
    Nginx gateway集群和动态网关
    查看>>