Python爬取网站图片
时间:2022-07-23
本文章向大家介绍Python爬取网站图片,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
直接运行即可,效果图:
代码如下
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 爬取图片
import requests,os
from pyquery import PyQuery as pq
import time
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'
}
# 这里我使用了代理 你可以去掉这个代理IP 我是为了后面大规模爬取做准备的
proxies = {
'https': '218.75.69.50:39590'
}
# 请求网页 获取源码
def start_request(url):
r = requests.get(url, headers=headers, proxies=proxies)
# 这个网站页面使用的是GBK编码 这里进行编码转换
r.encoding = 'GBK'
html = r.text
return html
# 解析网页 获取图片
def parse(text,i):
doc = pq(text)
# 锁定页面中的img标签
images = doc('div.list ul li img').items()
x = 1
for image in images:
# 获取每一张图片的链接
img_url = image.attr('src')
# 获得每张图片的二进制内容
img = requests.get(img_url, headers=headers, proxies=proxies).content
# 定义要存储图片的路劲
# 创建目录
dir_path = os.path.dirname(os.path.abspath(__file__)) + "\image\"
imagspath = dir_path+'/imgs'+str(i)
# 创建目录
if not os.path.exists(imagspath):
os.makedirs(imagspath)
path = imagspath+"\" + str(x) + ".jpg"
# 将图片写入指定的目录 写入文件用"wb"
with open(path, 'wb') as f:
f.write(img)
time.sleep(1)
print("正在下载第{}页{}张图片".format(i,x))
x += 1
print("写入完成")
def main():
url = "http://www.netbian.com"
text = start_request(url)
parse(text,1)
#爬取指定范围页面
for i in range(2,100):
urlnum = url + "/index_"+str(i)+".htm"
textnum = start_request(urlnum)
parse(textnum,i)
if __name__ == "__main__":
main()
- Spring Boot 中使用 Java API 调用 lucene
- Spring Boot 中使用 Java API 调用 Elasticsearch
- Spring Boot 中使用 公共配置
- WebView 和 JS 交互,如何将 Java 对象和 List 传值给 JS ?
- Spring Boot 中使用 LogBack 配置
- Spring Boot 中使用 RabbitMQ
- 手把手教你dubbo怎么用?
- 一步一步实现Android的MVP框架
- Base封装之我的最简MVP架构
- 请求跨域的解决方案
- 运用Kubernetes进行分布式负载测试
- Spring Cloud(五)断路器监控(Hystrix Dashboard)
- 微信技术团队的又一力作,WCDB 简单易用的数据库框架
- Redis特性和应用场景
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- chrome 插件通信DEOM
- rust 模块组织结构
- PCIe例程理解(一)用户逻辑模块(接收)仿真分析
- 细品服务并发限流+Redis-cell的使用
- 在VCUTRD 2020.1 里设置HDMI-TX显示QT界面
- 稀疏数组 & 环形队列
- Spring+Mybatis+Atomikos实现分布式事务
- Android低功耗蓝牙总结
- 【云原生技术研究】 从bpftrace看如何利用eBPF实现内核追踪
- Qt多线程编程
- JavaScript中的时间与日期、正则表达式和Function类型
- JavaScript中的变量、作用域、内存问题和基本包装类型
- 【LeetCode之C#解法】 移动零、爬楼梯
- jQuery框架概述
- 久等了!Docker容器常用命令