从placekitten网页上上抓图片

'从placekitten的网页上抓取一张图片'


import urllib.request
response = urllib.request.urlopen('http://placekitten.com/500/600')
#urlopen可以是字符串也可以是request对象
#urlopen返回一个对象,是类文件,和文件对象很相似,可以用read方法读取。
#还可以用response.geturl()、response.info()、response.getcode()读取
'''
参数url表示远程数据的路径,一般是网址;参数data表示以post方式提交到url的数据(玩过web的人应该知道提交数据的两种方式:post与get。如果你不清楚,也不必太在意,一般情况下很少用到这个参数);参数proxies用于设置代理。

urlopen返回 一个类文件对象,它提供了如下方法:read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样。

info():返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息。getcode():返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到。geturl():返回请求的url。
'''

'''
上面一行代码 =
req = urllib.request.Request('http://placekitten.com/500/600')
response = urllib.requst.urlopen(req)
'''

cat_img = response.read()

with open('cat_500_600.jpg','wb') as f:
    #将cat_img保存到cat_500_600中,以文件形式保存
    f.write(cat_img)
    #二进制写入文件

抓取的图片

要在网页上实现上传图片的功能,通常需要前后端配合完成。Python 通常作为后端语言处理上传请求,例如使用 Flask 框架接收上传的文件并保存。前端使用 HTML 表单发送文件,后端接收并处理。 以下是一个完整的示例,包括前端 HTML 和后端 Python(使用 Flask 框架)代码: ### 前端 HTML 代码 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传图片</title> </head> <body> <h2>上传图片</h2> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="image" accept="image/*"> <input type="submit" value="上传"> </form> </body> </html> ``` ### 后端 Flask Python 代码 ```python from flask import Flask, request, redirect, url_for import os app = Flask(__name__) UPLOAD_FOLDER = 'uploads' os.makedirs(UPLOAD_FOLDER, exist_ok=True) @app.route('/upload', methods=['POST']) def upload_file(): if 'image' not in request.files: return '没有选择图片', 400 file = request.files['image'] if file.filename == '': return '没有选择文件', 400 if file: file.save(os.path.join(UPLOAD_FOLDER, file.filename)) return '上传成功!', 200 @app.route('/') def index(): return ''' <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传图片</title> </head> <body> <h2>上传图片</h2> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="image" accept="image/*"> <input type="submit" value="上传"> </form> </body> </html> ''' if __name__ == '__main__': app.run(debug=True) ``` ### 代码解释: 1. **Flask 框架**: - `Flask(__name__)` 创建了一个 Flask 应用实例。 - `UPLOAD_FOLDER` 定义了上传文件的存储路径,使用 `os.makedirs` 创建该目录。 2. **上传功能**: - `/upload` 是处理上传请求的路由。 - 使用 `request.files` 获取上传的文件对象。 - 检查文件是否存在和是否为空。 - 如果文件有效,使用 `file.save()` 保存文件到指定路径。 3. **HTML 表单**: - `enctype="multipart/form-data"` 是必须的,用于支持文件上传。 - `<input type="file">` 允许用户选择文件。 - 提交请求后,文件会被发送到 `/upload` 路由。 4. **运行应用**: - 使用 `app.run(debug=True)` 启动 Flask 开发服务器,默认监听 `http://127.0.0.1:5000/`。 ### 测试步骤: 1. 确保安装了 Flask: ```bash pip install flask ``` 2. 将上述代码保存为 `app.py` 并运行: ```bash python app.py ``` 3. 打开浏览器访问 `http://127.0.0.1:5000/`,即可看到上传页面。 ### 注意事项: - 上传的文件会保存在项目目录下的 `uploads` 文件夹中。 - 实际部署时需要考虑文件名冲突、文件大小限制、安全性等问题。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值