使用Socket下载图片

Socket下载一张图片

在百度搜索头像,挑一张

复制图片的路径打开,并保存这个url

把这个url的域名和路径分开

首先导入socket模块

第一步:创建套接字客户端

第二步:发起连接,connect()参数填域名和端口,http协议端口默认为80

第三步:构造报文

报文里的URL就是一开始从图片地址将域名和路径分出来的,然后将报文写在一行

第四步:发送HTTP请求

此时运行会报错

因为Socket 发送和接收的都是bytes的数据,需要字节对象,现在的还是字符串,通过encode()编码

第五步:循环接收响应的内容

因为不知道响应的内容具体有多少,每次从管道中取出1024字节,取完为止,然后可以打印出res,看看接收到的数据

第六步:通过正则匹配图片的内容(去掉响应头)

这个也得用bytes的数据去匹配,匹配完返回的类型是一个列表

最后一步:把图片写入到本地

图片的内容本身就是二进制,就不用decode()解码了

原文地址:https://www.cnblogs.com/jiyu-hlzy/p/11746292.html

时间: 2024-10-15 09:14:43

使用Socket下载图片的相关文章

java如果模拟请求重启路由器(网络爬虫常用),还有java如何下载图片

我们如果在公司或家里使用网络爬虫去抓取自己索要的一些数据的时候,常常对方的网站有defence机制,会给你的http请求返回500错误,只要是相同IP就请求不到数据,这时候我们只能去重启路由器,这样IP地址会改变,网络爬虫就能正常工作了 下面是通过发送Socket请求来模拟路由器的重启指令: protected void rebotadsl() { try { BufferedOutputStream sender = null; String url = baseURL; URL target

我的第一个python爬虫程序(从百度贴吧自动下载图片)

这个学期开设了编译原理和形式语言与自动机,里面都有介绍过正则表达式,今天自己学了学用python正则表达式写爬虫 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛. 网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止. 如果把整个互联网当成

一个失误导致微信下载图片接口Token失效

公司的应用调了一个微信上传下载图片的接口,本来在线上跑的好好的,什么问题没有,但是这两天总是不定时的出现下载下来的图片损坏,拿着Token和serverid去接口测试网页验证,返回的是Token失效了,返回信息:"errcode": 40001, "errmsg": "invalid credential, access_token is invalid or not latest hint: [17ZG50664ent3].我是把Token和ticket

利用Node 搭配uglify-js压缩js文件,批量下载图片到本地

Node的便民技巧-- 压缩代码 下载图片 压缩代码 相信很多前端的同学都会在上线前压缩JS代码,现在的Gulp Webpack Grunt......都能轻松实现.但问题来了,这些都不会,难道就要面对几十个JS文件一遍遍来回“复制-压缩-创建-粘贴”,这样太不人性化了. 于是可以借助Node + uglify-js 轻松实现.(前提你会点node操作) 1.首先看一下目录: |--uglifyJS |--js |--test1.js |--test2.js |--uglify.js   //这

【iOS开发之旅】AFNetworking与SDWebImage下载图片

AFNetworking与SDWebImage下载图片 // // ViewController.m // AFNetworkingDemo // // Created by ChenQianPing on 16/1/31. // Copyright © 2016年 chenqp. All rights reserved. // #import "ViewController.h" #import "AFNetworking.h" #import "UII

安卓AsyncTask异步下载图片

package com.example.day7_practise; import java.io.IOException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import android.app.Activity;import android.app.ProgressDialog;import android.graphics.Bitmap;imp

UI13-异步下载图片

1 使用封装好的工具类,进行加载数据,存在数组中,加载好后重新刷新表内容.异步下载图片. 2.在model类中,使用方法对图片的网址进行解析,讲自己的image的地址,转化为image图片/ 在cell加载的时候调用. 3.在加载cell中图片的时候,如果图片为空,且不是正在加载中,调用model的方法进行对m的image赋值,此时注册观察者,当image的值发生改变时 触发观察者方法,此时已经有值可以对cell进行赋值:::如果图片有值,直接对cell进行赋值. 4.触发的观察者方法,找到新改

Python 批量下载图片示例

使用Python find函数和urllib下载图片. #!/usr/bin/env python import time import urllib i = 0 url = ['']*10 name = ['']*10 con = urllib.urlopen('http://www.ithome.com/html/bizhi/164396.htm').read() src = con.find(r'/newsuploadfiles') end = con.find(r'.jpg',src)

Android下载图片显示问题

============问题描述============ 我用下面的代码从服务器端下载了图片,运行在新开的线程中 System.out.println("before bm = " + bm); String imageUrl1 = "http://10.0.2.2:8080/BBStuServlet/test01_upload_1.jpg"; bm = NetTool.downlodBitmap(imageUrl1); map2.put("image&q